Nginx-在線升級、降級


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.重復上面的操作;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM