首页 > 其他 > 详细

Nginx

时间:2014-12-21 10:19:40      阅读:274      评论:0      收藏:0      [点我收藏+]

1、Nginx启动后,会有一个master进程和多个worker进程,master进程主要用来管理worker进程。worker用来处理基本的网络事件。master主要管理哪些事呢?a、接收来自外界的信号;b、向各worker进程发送信号;c、监控worker进程状态;d、自动重启退出的worker进程。

2.当我们提供80端口的http服务时,一个连接请求过来,每个进程都有可能处理这个连接,怎么做到的呢?首先,每个worker进程都是从master进程fork过来,在master进程里面,先建立好需要listen的socket(listenfd)之后,然后再fork出多个worker进程。所有worker进程的listenfd会在新连接到来时变得可读,为保证只有一个进程处理该连接,所有worker进程在注册listenfd读事件前抢accept_mutex,抢到互斥锁的那个进程注册listenfd读事件,在读事件里调用accept接受该连接。当一个worker进程在accept这个连接之后,就开始读取请求,解析请求,处理请求,产生数据后,再返回给客户端,最后才断开连接,这样一个完整的请求就是这样的了。我们可以看到,一个请求,完全由worker进程来处理,而且只在一个worker进程中处理。

Nginx

原文:http://www.cnblogs.com/shunliu-java/p/4176219.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!