nginx平滑升级的操作教程
程序员文章站
2022-05-11 14:50:08
...
平滑升级概述
Nginx方便地帮助我们实现了平滑升级。其原理简单概括,就是:
(1)在不停掉老进程的情况下,启动新进程。
(2)老进程负责处理仍然没有处理完的请求,但不再接受处理请求。
(3)新进程接受新请求。
(4)老进程处理完所有请求,关闭所有连接后,停止。
这样就很方便地实现了平滑升级。一般有两种情况下需要升级Nginx,一种是确实要升级Nginx的版本,另一种是要为Nginx添加新的模块。
Nginx方便地帮助我们实现了平滑升级。其原理简单概括,就是:
(1)在不停掉老进程的情况下,启动新进程。
(2)老进程负责处理仍然没有处理完的请求,但不再接受处理请求。
(3)新进程接受新请求。
(4)老进程处理完所有请求,关闭所有连接后,停止。
这样就很方便地实现了平滑升级。一般有两种情况下需要升级Nginx,一种是确实要升级Nginx的版本,另一种是要为Nginx添加新的模块。
升级过程
具体的操作也很简单,如下:
(0)查看当前版本
在存放Nginx的可执行文件的目录下输入:
复制代码代码如下:
./nginx -V
(1)下载新的Nginx版本并编译。
复制代码代码如下:
wget nginx-1.0.11.tar.gz
tar zxvf nginx-1.0.11.tar.gz
cd nginx-1.0.11
./configure --add-module=/customized_module_0 --add-module=/customized_module_1
make
注意不要进行make install
下载:
[root@liuawblizfpws~]#wget *.*.tar.gz (版本号已修改)
解压:
[root@liuawblizfpws ~]#tar zxvf nginx-0.*.*.tar.gz (版本号已修改)
这里顺便把nginx的版本号修改了,起到一定的安全作用。
修改源码文件:
[root@liuawblizfpws ~]#vim nginx-0.*.*/src/core/nginx.h#define NGINX_VERSION "*.$.&" (版本号)#define NGINX_VER "net/" NGINX_VERSION (服务器名字)
重新编译之前需要查看之前的nginx的安装信息:
[root@liuawblizfpws ~]#/usr/local/nginx/sbin/nginx -V
得到信息(路径因人而异):
nginx: configure arguments: --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
编译,但不安装;在编译目录下的objs目录下的nginx文件即是新的执行文件:
[root@liuawblizfpws nginx-0.*.*]#./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module[root@liuawblizfpws nginx-0.*.*]#make
备份原有nginx文件:
[root@liuawblizfpws ~]#mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.old
将已经编译好的nginx文件复制到相应的执行路径下:
cp ~/nginx-0.*.*/objs/nginx /usr/local/nginx/sbin/nginx
测试,以免不能平滑升级:
[root@liuawblizfpws ~]#/usr/local/nginx/sbin/nginx -tnginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is oknginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
测试通过则将nginx.pid修改为您nginx.pid.oldbin,同时启动新的nginx:
[root@liuawblizfpws ~]#kill -USR2 `cat /usr/local/nginx/logs/nginx.pid`
退出原nginx:
[root@liuawblizfpws ~]#kill -QUIT `cat /usr/loca/nginx/logs/nginx.pid.oldbin`
查验:
[root@liuawblizfpws ~]#curl -I netonline.meHTTP/1.1 200 OKServer: net/*.$.&Date: Thu, 09 Dec 2010 05:13:36 GMT
以上就是nginx平滑升级的操作教程的详细内容,更多请关注其它相关文章!
上一篇: Xml 学习 - 尼农小道
下一篇: tp3.2.1 post 分页实现
推荐阅读
-
php成功操作redis cluster集群的实例教程
-
在CentOS上配置Nginx+Gunicorn+Python+Flask环境的教程
-
Win10怎么查看DX版本?Win10升级DX12的教程
-
在Mac OS上编译安装Nginx+PHP+MariaDB开发环境的教程
-
在JavaScript中操作时间之getYear()方法的使用教程
-
Python的Django框架中使用SQLAlchemy操作数据库的教程
-
Windows下Python使用Pandas模块操作Excel文件的教程
-
微信公众号开启风险操作保护的详细图文教程
-
Nginx服务器上安装并配置PHPMyAdmin的教程
-
在Python中使用lambda高效操作列表的教程