一个nginx worker进程是同时处理两个请求还是一个接一个地处理?
|
关于过滤器的真正酷的部分
链是每个过滤器不等待
前一个过滤器完成;它
可以处理先前的过滤器
生产时的输出,有点
像Unix管道一样。 (从这里)
我猜上面在每个过滤器的末尾都在谈论这样的代码:
if (!chain_contains_last_buffer)
return ngx_http_next_body_filter(r, in);
就是说,nginx一对一地链接过滤器。
但是,由于它位于每个过滤器的末尾,因此必须等到当前过滤器完成为止。我看不到nginx如何赚到ѭ1。
因此,以上是关于nginx过滤器的并发性,接下来是关于nginx请求处理的并发性:
我们知道nginx使用epoll
处理请求:
events = epoll_wait(ep, event_list, (int) nevents, timer);
for (i = 0; i < events; i++) {
...
rev->handler(rev);
}
使用上面的代码,我不认为nginx可以同时处理两个请求,它只能一个接一个地处理(每个handler
足够快地完成其工作,因此下一个请求很快就会得到处理),对吗?
还是我缺少任何陷阱?
没有找到相关结果
已邀请:
1 个回复
babsoft