进程结构:一个master进程和多个子进程。
子进程分两类:一种是 Worker 进程,另一种是 Cache 相关的进程。
master进程:管理 Worker 进程,发送信号。
接收信号:
TERM/INT,立刻停止进程;
QUIT,优雅的退出,等请求处理完才退出;
HUP,重载配置文件;
USR1,重新打开日志文件,做日志文件的切割;
USR2,热升级第一阶段,启动新进程。旧的 Nginx 主进程 Master 将会把自己的进程文件改名为 .oldbin,然后执行新版 Nginx。此时新旧 Nginx 进程会同时运行,共同处理请求;
WINCH,热升级第二阶段,停止老进程。逐步停止旧版 Nginx 的 Worker 进程就都会随着任务执行完毕而退出,新版的 Nginx 的 Worker 进程会逐渐取代旧版 Worker 进程。
work进程:处理任务。
接收信号:TERM/INT、QUIT、USR1、WINCH。
cache manager进程: 缓存管理。
cache loader进程:缓存加载。
nginx命令对应信号:
reload: HUP;
reopen: USR1;
stop: TERM;
quit: QUIT。