1. 程式人生 > >Nginx實用教程(一):啟動、停止、重載配置

Nginx實用教程(一):啟動、停止、重載配置

style 負載 繼續 local con doc lin 配置文件的修改 tex

Nginx是一個功能強大的web服務器和負載均衡軟件,由俄羅斯人開發。Nginx包括一個master進程和數個worker進程,master進程用於讀取、解析配置文件和管理worker進程,worker進程實際處理請求。nginx實現了基於事件的模型和操作系統機制驅動的請求分發。

Nginx的各種功能以模塊(module)的形式提供,只有在編譯安裝時可以選擇安裝或不安裝哪些模塊,在源碼編譯後,或通過linux軟件管理包工具安裝nginx,不能再加載或去除模塊。

可以用 nginx -V 命令來查看配置目錄和prefix目錄,配置文件可以在編譯時單獨指定,也可以在啟動時指定,如果沒有指定配置文件,那麽默認配置文件為prefix目錄下的conf/nginx.conf。例如,prefix目錄為“/usr/local/nginx”,沒有指定配置文件,那麽默認情況,nginx的配置文件是“/usr/local/conf/nginx.conf”。

yum或者apt-get軟件包管理工具安裝的,配置文件通常是/etc/nginx/nginx.conf。

啟動

直接運行nginx可執行文件即可啟動,nginx會自動讀取配置文件目錄下的“nginx.conf”配置文件,也可以在後面接“-c”參數來指定配置文件:

nginx -c /path/to/configfile

由於nginx的配置文件比較復雜容易出錯,修改配置後可以用“-t”參數來校驗配置文件是否正確:

nginx -t    # 校驗默認的配置文件
nginx -t -c /path/to/configfile    # 校驗指定配置文件

-T參數除了校驗配置文件外,還同時將完整的配置文件打印到標準輸出(1.9.2以後版本支持)。

-g directives:設置全局指令,優先級高於配置文件。

-p prefix:制定prefix目錄,默認是/usr/local/nginx。

停止和重載

當nginx啟動後,可以使用“-s”參數向nginx管理進程發送信號來控制nginx:

nginx -s signal

其中,signal可以是以下值:

  • stop:快速關閉
  • quit:安全關閉
  • reload:重載配置文件
  • reopen:重新打開一個log文件,用於日誌切割

quit信號通知nginx等待worker進程處理完當前的請求後退出,此命令只能由啟動nginx的linux賬戶來執行。

reload信號通知nginx重新載入配置文件,除了實用reload外,nginx只會在啟動時載入一次配置文件,之後對配置文件的修改不會對已經運行的nginx進程生效。當運行這個命令時,master進程會嘗試讀取配置文件,如果配置文件沒有問題,master進程會啟動新的worker進程來運行新的配置文件並處理請求,並且通知老的worker進程不再處理新的請求並在處理完當前任務後退出。如果配置文件存在問題不能執行,master進程會回退老配置文件繼續工作,不會導致nginx進程整個異常退出。

linux的kill命令也可以達到相同的作用,我們假設nginx的master進程號(pid)是1234,那麽 kill -s QUIT 1234kill -s HUP 1234 這兩條命令和前面quit、reload的作用相同。

master進程的pid保存在pid文件中,如果編譯時沒有指定,那麽默認的pid文件位於prefix目錄下logs文件夾中,即“prefix/logs/nginx.pid”,prefix目錄的問題請看文章前部。

以上內容大部分翻譯自nginx官方文檔http://nginx.org/en/docs/

果覺得本文對您有幫助,請掃描後面的二維碼給予捐贈,您的支持是作者繼續寫出更好文章的動力!

技術分享

Nginx實用教程(一):啟動、停止、重載配置