您好,欢迎访问一九零五行业门户网

[读书笔记]初探nginx架构 1_进程模型

原文:http://tengine.taobao.org/book/chapter_02.html%20ngx
nginx启动后进程后台包含一个master进程与多个worker进程。
(终端nginx命令与master交互)
master进程用来管理worker进程包含
接收来自外界的信号向各worker进程发送信号监控worker进程的运行状态当worker进程退出后(异常情况下),会自动重新启动新的worker进程基本的网络事件放在worker进程中来处理。多个worker进程之间是对等的,他们同等竞争来自客户端的请求,各进程互相之间是独立的。一个请求,只可能在一个worker进程中处理,一个worker进程,不可能处理其它进程的请求。
处理流程
每个worker进程都是从master进程fork过来,在master进程里面,先建立好需要listen的socket(listenfd)之后,然后再fork出多个worker进程所有worker进程的listenfd会在新连接到来时变得可读,为保证只有一个进程处理该连接,所有worker进程在注册listenfd读事件前抢accept_mutex抢到互斥锁的那个进程注册listenfd读事件,在读事件里调用accept接受该连接当一个worker进程在accept这个连接之后,就开始读取请求,解析请求,处理请求,产生数据后,再返回给客户端,最后才断开连接该进程模型好处
对于每个worker进程来说,独立的进程,不需要加锁,所以省掉了锁带来的开销在编程以及问题查找时,也会方便很多采用独立的进程,可以让互相之间不会影响,一个进程退出后,其它进程还在工作,服务不会中断,master进程则很快启动新的worker进程').addclass('pre-numbering').hide(); $(this).addclass('has-numbering').parent().append($numbering); for (i = 1; i ').text(i)); }; $numbering.fadein(1700); }); }); 以上就介绍了[读书笔记]初探nginx架构 1_进程模型,包括了方面的内容,希望对php教程有兴趣的朋友有所帮助。
其它类似信息

推荐信息