作者信息

步履不停

分分合合拂袖悲欢,生生世世心甘情愿。

最近文章
phpStudy2018 Nginx4046287
PHP中的进制转换4332
PHP 代码优化 技巧总结3756
视频教程分类
推荐视频教程
  • Laraval 9 学习正当时—保姆级教程,想学不会都难!Laraval 9 学习正当时—保姆级教程,想学不会都难!
  • 千万级数据并发解决方案(理论+实战)千万级数据并发解决方案(理论+实战)
  • Laravel基础与实战(模块化)Laravel基础与实战(模块化)
  • UNI-APP开发(仿饿了么)UNI-APP开发(仿饿了么)
  • 首页 >运维 >Nginx > 正文

    nginx为什么能高并发

    原创2022-05-13 10:14:123936 关注公众号:每天精选资源文章推送

    nginx为什么能高并发

    简单来讲,就是异步非阻塞,使用了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为什么能高并发的详细内容,更多请关注php中文网其它相关文章!

    高并发千万级数据库系统解决方案

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

  • 相关标签:nginx 高并发
  • 相关文章

    相关视频


    专题推荐