架构
- nginx 状态机: 传输层状态机(tcp); http 状态机; mail 状态机
- nginx 进程: master进程; worker 进程; cache-manager ; cache-loader;
- worker 处理网络流量
- 进程间通讯使用共享内存、信号;
- master 管理worker 使用信号; 命令行命令(例如:reload)和master之间也使用信号;
- 多进程可防止第三方模块导致的地址空间 段错误,导致进程停止;
使用信号管理Nginx 的父子进程
kill -SIGHUP $master-pid
kill -SIGTERM $worker-pid # 子进程退出后 master 还会再启动一个
master
- 监控 worker 进程:
CHLD
信号, 子进程终止时会向父进程发送 CHLD 信号 - 管理 worker 进程, 接收信号:
- TERM,INT : 立刻停止 ;(nginx -s stop)
- QUIT : 优雅停止, 防止出现 tcp-reset等现象; (nginx -s stop)
- HUP : 重载配置文件; (nginx -s reload)
- USR1 : 重新打开日志