Does Nginx have separate queuing mechanism for requests?

Maxim Dounin mdounin at mdounin.ru
Wed Oct 2 15:41:17 UTC 2013


Hello!

On Wed, Oct 02, 2013 at 10:04:23AM -0400, amehzenin wrote:

> Hello.
> 
> Consider the following situation: you are deploying application that can
> serve 1 req./sec. What would happen if I send 10 request in 1 second? I
> wrote simple app to test that:
> https://github.com/amezhenin/nginx_slow_upstream . 
> This test shows that your requests will be served  _in_exact_same_order_
> they were sent.
> 
> For now, this looks like Nginx have some kind of queue for requests, but my
> colleague(administrator) sayd that there is no any queues in Nginx. So I
> wrote another question about epoll here:
> http://stackoverflow.com/questions/19114001/does-epoll-preserve-the-order-in-which-fds-was-registered
> . From that discussion I figured that epoll does preserves the order of
> requests.
> 
> I have two questions:
> 1) Is there any mistakes in reasoning/code above?
> 2) Does Nginx have some sort of queue for requests on top of epoll? Or Nginx
> uses pure epoll functionality?

There is no queue in nginx, but there is queue in a listen socket 
of your backend app.  It's called "listen queue" or "backlog" and 
likely it's what preserves a request order for you.

-- 
Maxim Dounin
http://nginx.org/en/donation.html



More information about the nginx mailing list