nginx模型有两种进程,master进程和worker进程。master进程主要用来管理worker进程,管理包含:接收来自外界的信号,向各worker进程发送信号,监控worker进程的运行状态,当worker进程退出后(异常情况下),会自动重新启动新的worker进程。而基本的网络事件,则是放在worker进程中来处理了。多个worker进程之间是对等的,他们同等竞争来自客户端的请求,各进程互相之间是独立的。一个请求,只可能在一个worker进程中处理,一个worker进程,不可能处理其它进程的请求。worker进程的个数是可以设置的,一般我们会设置与机器cpu核数一致,这里面的原因与nginx的进程模型以及事件处理模型是分不开的。
1.守护进程
一般启动nginx后,在unix系统的后端会以daemon(守护进程)的方式运行,守护进程是只运行的服务器端程序,通常在系统后台运行,没有控制终端,不与前台交互,daemon是长时间运行的进程,通常在系统启动后就运行,在系统关闭时结束。
2.Nginx启动方式
Nginx的启动方式有两种:
单进程启动:此时系统中只有一个进程,这个进程既是master进程,也是worker进程。
多进程启动:此时系统中有且仅有一个master进程,有多个worker进程,master进程主要是用来管理worker进程的。
3.Nginx进程模型