nginx的平滑升級(jí)
Nginx信號(hào)簡(jiǎn)介
主進(jìn)程支持的信號(hào)
TERM, INT: 立刻退出
QUIT: 等待工作進(jìn)程結(jié)束后再退出
KILL: 強(qiáng)制終止進(jìn)程
HUP: 重新加載配置文件,使用新的配置啟動(dòng)工作進(jìn)程,并逐步關(guān)閉舊進(jìn)程。
USR1: 重新打開(kāi)日志文件
USR2: 啟動(dòng)新的主進(jìn)程,實(shí)現(xiàn)熱升級(jí)
WINCH: 逐步關(guān)閉工作進(jìn)程
工作進(jìn)程支持的信號(hào)
TERM, INT: 立刻退出
QUIT: 等待請(qǐng)求處理結(jié)束后再退出
USR1: 重新打開(kāi)日志文件
1、查看現(xiàn)有的nginx編譯參數(shù)
[root@wenmao ~]# /usr/local/nginx/sbin/nginx -V
2.上傳新版本的源碼包nginx-1.16.1.tar.gz,解壓縮到/usr/local/
[root@wenmao ~]#?cd /usr/local/nginx-1.16.1/
[root@wenmao nginx-1.16.1]#?./configure --prefix=/usr/local/nginx --group=nginx --user=nginx --sbin-path=/usr/local/nginx/sbin/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --http-client-body-temp-path=/tmp/nginx/client_body --http-proxy-temp-path=/tmp/nginx/proxy --http-fastcgi-temp-path=/tmp/nginx/fastcgi --pid-path=/var/run/nginx.pid --lock-path=/var/lock/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --with-pcre --with-http_realip_module --with-stream
[root@wenmao ~]# make
不要make install?
3、備份nginx二進(jìn)制文件(期間nginx不會(huì)停止服務(wù))
[root@wenmao ~]#?mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx_`date +%F`
4、復(fù)制新的nginx二進(jìn)制文件,進(jìn)入新的nginx源碼包
[root@wenmao ~]# cp /usr/local/nginx/nginx-1.16.1/objs/nginx? ?/usr/local/nginx/sbin/
5、測(cè)試新版本的nginx是否正常
[root@wenmao ~]#?/usr/local/nginx/sbin/nginx -t
6、給nginx發(fā)送平滑遷移信號(hào)(若不清楚pid路徑,請(qǐng)查看nginx配置文件)
USR2: 啟動(dòng)新的主進(jìn)程,實(shí)現(xiàn)熱升級(jí)
[root@wenmao ~]#?kill -USR2 `cat /var/run/nginx.pid`
7、查看nginx pid,會(huì)出現(xiàn)一個(gè)nginx.pid.oldbin
[root@wenmao ~]#?ll /var/run/nginx.pid*
-rw-r--r-- 1 root root 5 Jul 1 00:00 /var/run/nginx.pid
-rw-r--r-- 1 root root 5 Jul? 1 11:11 /var/run/nginx.pid.oldbin
8、從容關(guān)閉舊的Nginx進(jìn)程(WINCH: 逐步關(guān)閉工作進(jìn)程)
[root@wenmao ~]#?kill -WINCH `cat /var/run/nginx.pid.oldbin`
9、此時(shí)不重載配置啟動(dòng)舊的工作進(jìn)程
HUP: 重新加載配置文件,使用新的配置啟動(dòng)工作進(jìn)程,并逐步關(guān)閉舊進(jìn)程。
[root@wenmao ~]#?kill -HUP `cat /var/run/nginx.pid.oldbin`
10、結(jié)束工作進(jìn)程,完成此次升級(jí)
QUIT: 等待請(qǐng)求處理結(jié)束后再退出
[root@wenmao ~]#?kill -QUIT `cat /var/run/nginx.pid.oldbin`
11、驗(yàn)證Nginx是否升級(jí)成功
[root@wenmao ~]# /usr/local/nginx/sbin/nginx -V