fablefe 发表于 2016-12-23 10:27:45

Nginx 重啟/修改conf後生效

  Nginx 重啟/修改conf後生效
  转载自 http://wp.rdandy.com/archives/226
  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`
页: [1]
查看完整版本: Nginx 重啟/修改conf後生效