您的位置:首页 > 运维架构 > Nginx

nginx的多进程模型

2017-02-17 10:10 190 查看

nginx的多进程模型

nginx也支持多线程模型,但是多进程模型有更多的优势,默认是多进程模型

nginx在启动后会有一个master进程和多个worker进程。master进程主要用来管理worker,包含接受来自外界的信号,向个worker进程发送信号,监控worker进程的运行状态,当worker进程退出后,会自动重新启动新的worker进程。而基本的网络事件,则是在worker进程中来处理了,比如accept()。多个worker进程直接是对等的,他们同等竞争来自客户端的请求,各进程之间是独立的。一个请求,只可能在一个worker进程中处理,一个worker进程,不可能处理其他worker进程的请求。worker进程的个数是可以设置的,一般设置与机器cpu核数一致,这里面的原因与nginx的进程模型以及时间处理模型是分不开的。

nginx多进程模型的好处

1.对于每个worker进程来说,独立的进程不需要枷锁,省掉了锁带来的开销,同时在编程以及问题查找时,也会方便很多。

2.采用独立的进程,可以让互相之间不会影响,一个进程退出后,其他进程还在工作,服务不会中断,master进程则会很快启动新的worker进程。

3.如果worker进程的异常退出,肯定是程序有bug了,异常退出会导致当前worker上的所有请求失败,不过不会影响到所有请求,所以降低了风险。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  nginx多进程模型