nginx支持的几种信号量,以下几种是主进程可以接受的信号,work进程也可以接收一些信号,但主进程支持的信号worker不一定支持
sigint,sigterm 立即杀掉nginx主(即所有进程)
sigquit graceful stop主进程
sigwinch graceful stop所有的worker进程
sighub 重新加载配置文件,并使老的worker进程graceful stop
sigusr1 重新打开目录文件
sigusr2 在线切换nginx可执行程序
graceful stop的行为是:进程不再监听,接受新的请求,进程继续处理正在处理的请求,但处理完成后销毁
具体步骤是:
- 重新编译新版本的Nginx,并创建软链接文件,将此Nginx链接到原版本的Nginx执行目录下。
- 发送信号量Kill - User2在线切换可执行程序
- 为了稳定性,我们先发送信号量Kill -Winch通知工作进程Grateful stop ,待新Worker进程工作没问题时,再通过信号量kill -Quit通知主进程Grateful Stop
- 这样就完成了升级
降级操作
- 可以在第3步时如果新Nginx进程有问题,我们可以通过信号量Kill -hub来让旧的nginx重新加载配置文件启动。
- 或者执行一遍如上操作进行降级