2.1Nginx的进程模型
图2-1 nginx的进程模型
如图所示,nginx的进程模型是由一个master进程,多个worker进程组成。要想以单进程模型运行,可以通过修改nginx.conf配置文件,添加“master_process off”指令。调试时,多以单进程模型运行。
其中master进程主要工作是启动、管理、监控worker进程,worker进程才是真正干活的,主要工作是处理HTTP请求。master进程启动全部worker进程后进入休眠状态,等待用户、或worker进程发送的信号,如用户强制关闭nignx了、有worker进程退出了等等。worker进程数目由“worker_processes n”指令指定。
当客户端发来请求时,如果使用了acceptmutex锁,则多个worker进程竞争获得这个请求。当某个worker进程获得了这个请求,如果配置了upstream模块,则从中选择一个后端服务器,并将这个请求转发给后端的服务器,让它来处理。后端服务器处理完毕,将数据返回给nginx,nginx再将数据返回给客户端。
2.2 nginx启动过程