不停止nginx服务的情况下替换nginx执行文件

 2023-09-05 阅读 256 评论 0

摘要:目前老的nginx正在运行中,我们要进行nginx执行文件的替换。下面我记录一下我的操作: 1、下载一个新版本的nginx源码包儿解压,写好参数比如./configure --prefix=/usr/local/ --with-http_mp4_module --with-http_flv_module 然后执行make,但

目前老的nginx正在运行中,我们要进行nginx执行文件的替换。下面我记录一下我的操作:

1、下载一个新版本的nginx源码包儿解压,写好参数比如./configure --prefix=/usr/local/ --with-http_mp4_module --with-http_flv_module 然后执行make,但不make install。或者将同一个版本的nginx的源码包更新参数,比如增加一个模块--with-http_stub_status_module然后make,还是一样不要执行make install


2、替换nginx执行文件。

备份原nginx执行文件

mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/1.10.0_nginx


进入源码包所在目录下的objs目录,将nginx文件复制到/usr/local/nginx/sbin/

cp /tmp/nginx-1.11.3/objs/nginx /usr/local/nginx/sbin/


3、旧的请求,继续由旧执行文件处理,新的请求统统由新程序执行。

新执行文件启动,生成新进程号,新旧的进程共存!

kill -USR2 `cat /usr/local/nginx/logs/nginx.pid`

或kill -12 `cat /usr/local/nginx/logs/nginx.pid`

新来的请求统统由新程序处理,老的连接还继续由老程序处理。

kill -WINCH `cat /usr/local/nginx/logs/nginx.pid.oldbin`

或kill -28 `cat /usr/local/nginx/logs/nginx.pid.oldbin`

愣一段儿时间,你觉得没有人还在用旧的程序了。时机到了,彻底弃用旧程序!

kill -QUIT `cat /usr/local/nginx/logs/nginx.pid.oldbin`

或kill -3 `cat /usr/local/nginx/logs/nginx.pid.oldbin`




本文转自 朱科强 51CTO博客,原文链接:http://blog.51cto.com/zhukeqiang/1847357,如需转载请自行联系原作者

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/1/142.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息