Nginx的在线升级不需要停服务
1.我们要准备好升级的Nginx软件包,解压;
[root@sxb-1 Nginx]# tar xf nginx-1.13.4.tar
2.备份好原先的Nginx数据;
[root@sxb-1 Nginx]# mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak [root@sxb-1 Nginx]# ls /usr/local/nginx/sbin/nginx.bak /usr/local/nginx/sbin/nginx.bak
3.对解压Nginx目录进行配置,在目录里会出现先objs目录;编译 make;
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_ssl_module --with-http_stub_status_module --with-file-aio --with-http_dav_module --with-pcre=../pcre-8.40
4.将我们编译好的数据copy到Nginx目录去;
[root@sxb-1 nginx-1.13.4]# cp objs/nginx /usr/local/nginx/sbin/
5.查看版本号
[root@sxb-1 sbin]# /usr/local/nginx/sbin/nginx -v nginx version: nginx/1.13.4
到这里我们在硬盘上的升级就完成了,接下来我们要替换内存中的Nginx数据;
这里有两种方法;
第一种为 make upgrade;
第二种;
我们要先查看一下Nginx进程号
[root@sxb-1 sbin]# ps -ef | grep nginx root 25451 1 0 04:45 ? 00:00:00 nginx: master process /usr/local/nginx/sbin/nginx nginx 25452 25451 0 04:45 ? 00:00:00 nginx: worker process root 33976 19429 0 05:15 pts/3 00:00:00 grep --color=auto nginx
1.把我们的新版本加进来
[root@sxb-1 sbin]# kill -USR2 25451 [root@sxb-1 sbin]# ps -ef | grep nginx root 25451 1 0 04:45 ? 00:00:00 nginx: master process /usr/local/nginx/sbin/nginx nginx 25452 25451 0 04:45 ? 00:00:00 nginx: worker process root 33977 25451 0 05:19 ? 00:00:00 nginx: master process /usr/local/nginx/sbin/nginx nginx 33978 33977 0 05:19 ? 00:00:00 nginx: worker process root 33980 19429 0 05:19 pts/3 00:00:00 grep --color=auto nginx
我们可以看到,出现了两个Nginx进程(bin/nginx为子进程)
2.命令旧本nginx剩余任务完成后,不再接新的任务;
[root@sxb-1 sbin]# kill -WINCH 25451 [root@sxb-1 sbin]# ps -ef | grep nginx root 25451 1 0 04:45 ? 00:00:00 nginx: master process /usr/local/nginx/sbin/nginx root 33977 25451 0 05:19 ? 00:00:00 nginx: master process /usr/local/nginx/sbin/nginx nginx 33978 33977 0 05:19 ? 00:00:00 nginx: worker process root 33987 19429 0 05:22 pts/3 00:00:00 grep --color=auto nginx
旧版本nginx不再产生子进程接任务;这里我们一般会把旧版本放置一段时间,以防新版本出现问题;
3.将旧版本nginx清除掉;
[root@vlnx251101 ~]# kill -QUIT 25451
这样升级任务就完成了
=================================================================================================
降级操作:
1.将我们备份的nginx.bak恢复到/usr/local/nginx/sbin 目录下;
2.重复上面的操作;
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Nginx-在线升级、降级 - Python技术站