9

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: Does epoll preserve the order in which fd's 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?

Thank you, and sorry for my English :)

4

1 回答 1

6

Nginx 没有自己的队列,而是将所有请求推送到具有listen套接字的应用程序服务器:

#include <sys/types.h>
#include <sys/socket.h>

int listen(int sockfd, int backlog);

(http://linux.die.net/man/2/listen)

backlog定义此队列的长度。你可以在这里阅读完整的对话。

于 2013-10-03T16:04:04.320 回答