这里演示是nginx1.22.1版本升到1.24.0版本(该版本是目前发布最新稳定版本)仅限于编译安装
官网下载地址:
百度网盘提取链接:
https://pan.baidu.com/s/1rW7Ob-4kbPQTqDTnHivFxg?pwd=bgit
提取码:bgit
将获取到的nginx-1.24.0.tar.gz包上传
准备编译安装需要使用的一些插件(已经有的可以忽略这一步)
yum -y install gcc gcc-c++ pcre pcre-devel openssl openssl-devel zlib zlib-devel
解压nginx-1.24.0.tar.gz并cd到目录内
tar xzf nginx-1.24.0.tar.gz -C /usr/local/
cd /usr/local/nginx-1.24.0/
编译参数安装,使用/usr/local/nginx/sbin/nginx -V 查看信息,将参数直接复制即可,如果想要加一些新的模块只需要在后面加上 --add 跟上对应的模块名
!注意该步骤需要复制自己的配置参数信息,需要与之前配置参数一致,下面只是我个人的,仅供参考
完成后使用make即可,不要使用make install,会将原来的配置文件覆盖
备份二进制文件和 nginx 的配置文件(期间nginx不会停止服务)
复制新的nginx二进制文件,进入新的nginx源码包
mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx_$(date +%F)
cp /usr/local/nginx-1.24.0/objs/nginx /usr/local/nginx/sbin/
测试新版本的nginx是否正常
/usr/local/nginx/sbin/nginx -t
USR2: 启动新的主进程,实现热升级
kill -USR2 `cat /var/run/nginx.pid`
查看nginx pid,会出现一个nginx.pid.oldbin
ll /var/run/nginx.pid*
从容关闭旧的Nginx进程(WINCH: 逐步关闭工作work进程)
kill -WINCH `cat /var/run/nginx.pid.oldbin`
重新加载配置文件,使用新的配置启动工作进程,并逐步关闭旧进程。
kill -HUP `cat /var/run/nginx.pid.oldbin`
等待请求处理结束后再退出
kill -QUIT `cat /var/run/nginx.pid.oldbin`
查看是否升级成功
/usr/local/nginx/sbin/nginx -v