4、Nginx处理web请求机制解析
master会根据配置文件worker进程数fork出对应的worker进程,加入有一个客户端连接进来发送请求,这3个worker会去争抢处理,首先会获取该client对应的一个accept_mutex锁,获得锁之后就可以处理请求了,其他没有获取到锁的worker进程则不处理.
传统服务器事件处理同步阻塞的,当worker1处理client1的请求阻塞时,来自client2、client3的请求也会被阻塞住,无法处理,只有处
理完client1的请求之后才能处理其他请求.为了解决这个问题,可以在fork出一个worker进程,来处理client2、client3的请求,这样感
觉比较重,如果多个请求都是耗时阻塞的,则在处理多个请求时会fork出多个worker进程来处理.
Nginx事件处理异步非阻塞模型. 如worker1所示,多个client请求可以被一个worker处理,当一个请求阻塞时,worker可以处理其他的请求. 这样一个
worker可以处理6-8万个请求.对传统服务器来说,处理一万个请求可能会有一万个worker,而Nginx只需几个worker就可以处理.
可以配置Nginx的worker最大连接数,可以在nginx.conf中配置
以上是 4、Nginx处理web请求机制解析 的全部内容, 来源链接: utcz.com/z/516170.html