nginx为什么能高并发


本文摘自PHP中文网,作者步履不停,侵删。

简单来讲,就是异步非阻塞,使用了epoll大量的底层代码优化。

稍微详细一点展开的话,就是nginx的特殊进程模型事件模型的设计。

进程模型

nginx采用一个master进程,多个woker进程的模式。

  1. master进程主要负责收集、分发请求。当一个请求过来时,master拉起一个worker进程负责处理这个请求。

  2. master进程也要负责监控woker的状态,保证高可靠性

  3. woker进程一般设置为跟cpu核心数一致。nginx的woker进程跟apache不一样。apche的进程在同一时间只能处理一个请求,所以它会开很多个进程,几百甚至几千个。而nginx的woker进程在同一时间可以处理额请求数只受内存限制,因此可以处理多个请求。

事件模型

nginx是异步非阻塞的。

每进来一个request,会有一个worker进程去处理。但不是全程的处理,处理到什么程度呢?处理到可能发生阻塞的地方,比如向上游(后端)服务器转发request,并等待请求返回。那么,这个处理的worker不会这么傻等着,他会在发送完请求后,注册一个事件:“如果upstream返回了,告诉我一声,我再接着干”。于是他就休息去了。此时,如果再有request 进来,他就可以很快再按这种方式处理。而一旦上游服务器返回了,就会触发这个事件,worker才会来接手,这个request才会接着往下走。

web server的工作性质决定了每个request的大部份生命都是在网络传输中,实际上花费在server机器上的时间片不多。这是几个进程就解决高并发的秘密所在。

更多Nginx相关技术文章,请访问Nginx教程栏目进行学习!

以上就是nginx为什么能高并发的详细内容,更多文章请关注木庄网络博客

相关阅读 >>

nginx与php怎么处理用户请求

tomcat有必要加nginx

nginx执行sbin/nginx -s reload命令出错了怎么办

apache与nginx哪个好

linux下nginx重启命令是什么?

利用nginx实现301跳转到https的根域名

403nginx是什么

nginx解决跨域的原理分析

比较讲解http中499状态码和nginx下499错误

nginx反向代理的好处是什么

更多相关阅读请进入《nginx》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...