Nginx的热升级功能使得在不中断服务的情况下能够更新配置或升级软件,通过准备新版本、启动新版本、测试新版本、切换流量和关闭旧版本等步骤,可以确保系统持续稳定运行并保证高可用性。
本章将nginx1.22升级为1.25版本。安装包可以去nginx官网下载
nginx热升级
1.nginx保持启动,解压1.25源码包
tar zxvf nginx-1.25.1.tar.gz -C /usr/src
2.进入解压后目录,开始热升级
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module && make
3.将旧的nginx启动方式移动或者改名,将新的启动模块复制进去
mv /usr/local/nginx/sbin/nginx /usr/local/sbin/nginx_old
[rootelocalhost nginx-1.25.1]#cp objs/nginx /usr/local/nginx/sbin/nginx
4.使nginx的旧版本停止接受请求。由新版本的nginx来接替。并且老的进程处理完所有的请求后,关闭所有的连接并停止。查看nginx版本是否升级。
kill -s USR2 $(cat /usr/local/nginx/logs/nginx.pid)
nginx -v
加入系统服务
编辑nginx服务文件(/etc/rc.d/init.d/nginx)
#!/bin/bash
#chkconfig:2345 35 25
PROG="/usr/local/nginx/sbin/nginx"
PIDF="/usr/local/nginx/logs/nginx.pid"
case "$1" in
start)
$PROG
echo "nginx qidong!"
;;
stop)
kill -s QUIT $(cat $PIDF)
echo "nginx guanbi!"
;;
restart)
nginx -s stop
$PROG
;;
reload)
kill -s HUP $(cat $PIDF)
nginx -s reload
echo "chongxin nginx"
;;
*)
echo "Useage:$0 {start|stop|restart|reload}"
exit 1
esac
exit 0
给予执行权限
chkconfig --add nginx
chmod +x /etc/rc.d/init.d/nginx