注: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 #關閉老版本進程號