CentOS7 nginx升级

nginx升级

半自动

  1. 按需编译新版本的nginx;执行到make就打住,不要make install
  2. 重命名nginx旧版本二进制文件,即sbin目录下的nginx(期间nginx并不会停止服务!)
    mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.old
  3. 然后拷贝一份新编译的二进制文件:
    cp objs/nginx /usr/local/nginx/sbin/
  4. 在源码目录执行make upgrade开始升级:
    下面是make upgrade命令的打印信息:
    /usr/local/nginx/sbin/nginx -t
    nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
    nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
    kill -USR2 cat /usr/local/nginx/logs/nginx.pid
    sleep 1
    test -f /usr/local/nginx/logs/nginx.pid.oldbin
    kill -QUIT cat /usr/local/nginx/logs/nginx.pid.oldbin
  5. 完成后,最后确认一下 nginx -V :

手动

  1. 按需编译新版本的nginx;执行到make就打住,不要make install
  2. 重命名nginx旧版本二进制文件,即sbin目录下的nginx(期间nginx并不会停止服务!)
    mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.old
  3. 然后拷贝一份新编译的二进制文件:
    cp objs/nginx /usr/local/nginx/sbin/
  4. 测试新版本的nginx是否正常:
    /usr/local/nginx/sbin/nginx -t
  5. 给旧nginx发送平滑迁移信号,使nginx的旧版本停止就收请求(向主进程发送USR2信号,Nginx会启动一个新版本的master进程和工作进程,和旧版一起处理请求)
    kill -USR2 cat /usr/local/nginx/logs/nginx.pid 或kill -USR2 ps aux | grep "nginx: master process" | grep -v grep | awk '{print $2}'
  6. 等待旧版本Nginx的pid变为oldbin(执行如下命令查看是否生成)
    test -f /usr/local/nginx/logs/nginx.pid.oldbin && echo OK!
  7. 从容关闭旧版本的Nginx进程,向原Nginx主进程发送WINCH信号,它会逐步关闭旗下的工作进程(主进程不退出),这时所有请求都会由新版Nginx处理
    kill –WINCH cat /usr/local/nginx/log/nginx.oldbin
  8. 此时,如果这时需要回退,可向原Nginx主进程发送HUP信号,它会重新启动工作进程, 仍使用旧版配置文件 。然后可以将新版Nginx进程杀死(使用QUIT、TERM、或者KILL)
    kill –HUP cat /url/local/nginx/log/nginx.oldbin
  9. 结束工作进程,完成此次升级操作:
    kill –QUIT `cat /usr/local/nginx/log/nginx.oldbin
    /usr/local/nginx/sbin/nginx -V
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值