Nginx使用epoll来传达客户端并且效率非常高,但是Nginx如何与上游进行通信,我谷歌并从quora http://www.quora.com/How-can-nginx-handle-concurrent-requests-with-a-single-worker-process得到答案,但答案并没有回答这个问题,我检查了Nginx的源代码,它有一个线程池的实现,文件:http://trac.nginx.org/nginx/browser/nginx/src/core/ngx_thread_pool.c我不擅长C,所以我不知道nignx如何使用线程池。
但是如果nignx工作进程使用单线程来处理所有请求,当nignx等待来自upsteam的数据时,它应该阻塞线程,因此线程不能为其他请求提供服务,但事实上,Nginx做了一个上游工作做得好,如何实施?