平滑重启(Nginx reload)可以在不中断服务的情况下重新加载配置,适用于修改配置文件后的应用场景。
检查配置文件语法(推荐先执行):
nginx -t
发送reload信号:
nginx -s reload
或者使用kill命令:
kill -HUP `cat /var/run/nginx.pid`
平滑升级可以在不停止服务的情况下升级Nginx二进制文件。
备份当前Nginx二进制文件:
cp /usr/sbin/nginx /usr/sbin/nginx.old
编译安装新版本:
./configure [原配置参数] --with-http_stub_status_module [其他模块]
make
替换二进制文件前检查:
make upgrade
或者手动替换:
cp objs/nginx /usr/sbin/nginx
发送USR2信号:
kill -USR2 `cat /var/run/nginx.pid`
这会启动新的主进程和工作进程,同时保留旧进程
优雅关闭旧进程:
kill -WINCH `cat /var/run/nginx.pid.oldbin`
确认升级成功后关闭旧主进程:
kill -QUIT `cat /var/run/nginx.pid.oldbin`
如果在升级过程中发现问题,可以回滚到旧版本:
kill -HUP `cat /var/run/nginx.pid.oldbin` # 重启旧工作进程
kill -QUIT `cat /var/run/nginx.pid` # 关闭新主进程
通过以上方法,可以实现Nginx服务的不间断重启和升级,确保服务的高可用性。