Nginx服務器的平滑啓動、平緩中止、平滑升級

注:nginx

Nginx服務在運行時,會保持一個主進程(master process)和一個或多個工做進程(worker process)。
每個進程都會有一個PID進程號,能夠經過向主進程的PID進程號發送信號關閉服務器。
Nginx服務器啓動後,默認在Nginx服務器安裝目錄的logs目錄中會產生文件名爲nginx.pid的文件,此文件中保持的就是nginx服務主進程的PID。服務器

1、nginx服務器可接收的信號:測試

(1) TERM 或 INT 快速中止nginx服務器。spa

(2) QUIT 平緩中止nginx服務器。日誌

(3) HUP 平滑重啓,使用新的配置文件啓動進程,平緩的中止原有進程,code

(4) USR1 從新打開日誌文件,經常使用於日誌切割。blog

(5) USR2 平滑升級,使用新版本的Nginx文件啓動服務,平緩的中止原有Nginx進程。進程

(6) WINCH 平緩中止worker process,用於Nginx服務器平滑升級。get

1.快速中止nginx服務器編譯

(1) kill -TERM `cat /usr/local/nginx/logs/nginx.pid`
(2) kill -INT `cat /usr/local/nginx/logs/nginx.pid`

2.平緩中止nginx服務器

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

3.平滑重啓nginx服務器

(1) kill -HUP `cat /usr/local/nginx/logs/nginx.pid`
(2) /usr/local/nginx/sbin/nginx -s reload

4.平緩中止工做進程

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

5.強制中止nginx

pkill -9 nginx

6.中止nginx服務器的命令

(1) /usr/local/nginx/sbin/nginx -s stop
(2) pkil nginx

7.檢查對nginx.conf文件的修改是否正確

(1) nginx -t -c /usr/local/nginx/conf/nginx.conf

(2) /usr/local/nginx/sbin/nginx -t

2、nginx服務器平滑升級過程以下:

注:爲實現nginx服務器的平滑升級,新的服務器安裝路徑應該和舊的保持一致。所以建議用戶安裝新服務器以前先備份舊的服務器。

1.編譯新版本的nginx

(1) tar -xvf nginx-1.14.2.tar.gz #解壓
(2) cd nginx-1.14.2 #進入解壓後的目錄
(3) ./configure --prefix=/usr/local/nginx #預編譯路徑和老版本的安裝路徑保持一致。
(4) make #編譯

2.備份舊版本可執行nginx,複製新版本的nginx可執行nginx

mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.old #備份
cp objs/nginx   /usr/local/nginx/sbin/ #複製新版本可執行文件
/usr/local/nginx/sbin/nginx -t #測試新版本是否正常

3.平滑重啓升級nginx

kill USR2 ` cat /usr/local/nginx/log/nginx.pid` 或 /usr/local/nginx/sbin/nginx -g USR2 #發送平滑升級的信號
kill -WINCH `cat /usr/local/nginx/log/nginx.pid` 或 /usr/local/nginx/sbin/nginx -g WINCH #發送平緩中止舊服務器的信號
/usr/local/nginx/sbin/nginx -V #顯示最新編譯的版本信息便可。

 3、平滑升級從新整理步驟

 1 weget -c http://nginx.org/download/nginx-1.15.0.tar.gz
 2 #下載新版本,解壓軟件包後進入 

3 ./configure && make 4 #預編譯和編譯

5 cd objs 6 #進入編譯好的目錄
7
mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.old 8 #備份老版本啓動腳本
9
cp nginx /usr/local/nginx/sbin/nginx 10 #拷貝新版本進程號

11 cp /usr/local/nginx/logs/nginx.pid /usr/local/nginx/logs/nginx.pid.oldbin 12 #備份老版本主進程號

13 kill -USR2 `cat /usr/local/nginx/logs/nginx.pid` 14 #生產新版本進程號

15 kill -QUIT `cat /usr/local/nginx/logs/nginx.pid.oldbin` 16 #關閉老版本進程號
相關文章
相關標籤/搜索