Nginx 重啟/修改conf後生效
1.程序運行參數
Nginx 安裝後只有一個程序文件,本身並不提供各種管理程序,它是使用參數和系統信號機制對 Nginx 進程本身進行控制的。
Nginx 的參數包括有如下幾個:
-c <path_to_config>:使用指定的配置文件而不是 conf 目錄下的 nginx.conf 。
-t:測試配置文件是否正確,在運行時需要重新加載配置的時候,此命令非常重要,用來檢測所修改的配置文件是否有語法錯誤。
-v:顯示 nginx 版本號。
-V:顯示 nginx 的版本號以及編譯環境信息以及編譯時的參數。
例如我們要測試某個配置文件是否書寫正確,我們可以使用以下命令
sbin/nginx –t –c conf/nginx2.conf
2.通過信號對 Nginx 進行控制
Nginx 支持下表中的信號:
信號名 | 作用描述 |
TERM, INT | 快速關閉程序,中止當前正在處理的請求 |
QUIT | 處理完當前請求後,關閉程序 |
HUP | 重新加載配置,並開啟新的工作進程,關閉就的進程,此操作不會中斷請求 |
USR1 | 重新打開日誌文件,用於切換日誌,例如每天生成一個新的日誌文件 |
USR2 | 平滑升級可執行程序 |
WINCH | 從容關閉工作進程 |
有兩種方式來通過這些信號去控制 Nginx,第一是通過 logs 目錄下的 nginx.pid 查看當前運行的 Nginx 的進程 ID,通過 kill –XXX <pid> 來控制 Nginx,其中 XXX 就是上表中列出的信號名。
語法可參考如下:(http://www.ruby-forum.com/topic/178934)
ps aux | egrep '(PID|nginx)'
# and kill the PID
kill -HUP PID
如果您的系統中只有一個 Nginx 進程,那您也可以通過 killall 命令來完成,例如運行 killall –s HUP nginx 來讓 Nginx 重新加載配置。
但更新 conf 後最好不是 restart Nginx,而是先刪除正在執行的工作,然後再啟動 Nginx
補充手動重啟 Nginx 的方法:(http://www.ruby-forum.com/topic/178934)
sudo kill -HUP `cat /path/to/logs/nginx.pid`
※ /path/to/nginx.pid 有的系統會在 /var/run/nginx.pid
我的完整指令:
啟動:
sudo ./usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
重載 conf:
sudo kill -HUP `cat /usr/local/nginx/logs/nginx.pid`
标签:nginx,Nginx,kill,conf,重啟,信號,進程
From: https://blog.51cto.com/u_16160131/6475583