Nginx主程式使用介紹

weixin_34391854發表於2017-01-13

守護程式和服務

<br\>
在首次執行Nginx之前,瞭解此應用程式的性質很重要。 有兩種型別的計算機應用程式 – 那些需要使用者輸入,因此在前臺執行,另一種在後臺執行。 Nginx是後一種型別,通常稱為守護程式。 守護程式名稱通常帶有尾隨的“d”,這裡可以提到幾個例子 – httpd,HTTP伺服器守護程式,是幾個Linux發行版下給Apache的名稱; named,域名解析伺服器守護程式; 或crond任務排程器 – 當Nginx從命令列啟動時,守護程式立即返回終端,並且在大多數情況下,甚至不會輸出任何資料到終端。

使用者和組

<br\>
瞭解Nginx的程式架構,特別是其各種程式執行的使用者和組是非常重要的。由於使用者或組的錯誤配置 ,可能導致Nginx出現許可權之類的錯誤,你最終會得到403 Forbidden HTTP錯誤,Nginx不能訪問請求的檔案。
有兩個級別的程式,可能具有不同的許可權集:
Nginx主程式:這應該以root身份啟動。 在大多數類Unix系統中,使用root帳戶啟動的程式允許在任何埠上開啟TCP套接字,而其他使用者只能在1024以上的埠上開啟偵聽套接字。如果您不以root身份啟動Nginx,則標準埠 80或443將無法訪問。
Nginx工作程式:這些由主程式在您配置檔案中使用user指令指定的帳戶下自動生成。 配置設定優先於您在編譯時指定的配置選項。 如果您沒有指定任何這些,工作程式將作為使用者nobody和組nobody(或nogroup,取決於您的作業系統)啟動。

Nginx命令列選項

<br\>
Nginx二進位制接受命令列引數以執行各種操作,包括控制後臺程式。 要獲取完整的命令列表,可以使用以下命令輸出幫助資訊:

  1. [alex@example.com ~]$ cd /usr/local/nginx/sbin
  2. [alex@example.com sbin]$ ./nginx -h

啟動和停止Nginx程式

<br\>
你可以不用指令任何引數來啟動Nginx。 如果守護程式已在執行,將顯示一條訊息,套接字已在偵聽埠上偵聽:
[emerg]: bind() to 0.0.0.0:80 failed (98: Address already in use) […]
[emerg]: still could not bind().
除此之外,您可以通過停止,重新啟動守護程式或簡單地重新載入它的配置來控制守護程式。 通過使用nginx -s命令向程式傳送訊號來控制程式。
nginx –s stop:立即停止守護程式(使用TERM訊號)。
nginx –s quit:正常停止守護程式(使用QUIT訊號)。
nginx –s reopen:重新開啟日誌檔案。
nginx –s reload:重新載入配置。
在以上命令無法停止nginx的情況下,終止程式的另一種方法是使用具有root許可權的kill vs killall命令:

  1. [root@example.com ~]# killall nginx

測試配置檔案

<br\>
測試Nginx配置檔案的命令為:

  1. [alex@example.com ~]$ /usr/local/nginx/sbin/nginx –t

也可以測試指定的配置檔案:

    1. [alex@example.com sbin]$ ./nginx –t –c /home/alex/test.conf

相關文章