NGINX與其他服務類似,因為它具有以特定格式編寫的基於文字的設定檔。
預設情況下,檔案名稱為nginx.conf並放在/etc/nginx目錄中(對於開源NGINX產品,位置取決於用於安裝NGINX和作業系統的軟體包系統,它通常位於/usr/local/nginx/conf/etc/nginx或/usr/local/etc/nginx。) ( 推薦學習:nginx使用 )
設定檔由指令及其參數組成。簡單(單行)指令各自以分號結尾。其他指令作為“容器”,將相關指令組合在一起,將其包圍在花括號({})中。以下是簡單指令的一些範例。
user nobody; error_log logs/error.log notice; worker_processes 1;
為了使配置更易於維護,建議您將其拆分為存儲在/etc/nginx/conf.d目錄中的一組功能特定文件,並在主nginx.conf文件中使用include指令引用(包函)指定文件的內容。如下所示-
include conf.d/http; include conf.d/stream; include conf.d/exchange-enhanced;
幾個頂級指令(稱為上下文)將適用於不同流量類型的指令組合在一起:
events – 一般連接處理http – HTTP協定流量mail – Mail協定流量stream – TCP協定流量
指定在這些上下文之外的指令是在主上下文中。在每個流量處理上下文中,可包含一個或多個伺服器上下文來定義控制請求處理的虛擬伺服器。您可以在伺服器環境中包含的指令會根據流量類型而有所不同。
對於HTTP流量(http上下文),每個伺服器指令控制對特定網域或IP位址上的資源請求的處理。伺服器上下文中的一個或多個位置上下文定義瞭如何處理特定的URI集合。
對於郵件和TCP流量(mail 和 stream 上下文),伺服器指令各自控製到達特定TCP連接埠或UNIX套接字的流量處理。
以下配置說明了上下文的使用情況。
user nobody; # a directive in the 'main' context events { # configuration of connection processing } http { # Configuration specific to HTTP and affecting all virtual servers server { # configuration of HTTP virtual server 1 location /one { # configuration for processing URIs with '/one' } location /two { # configuration for processing URIs with '/two' } } server { # configuration of HTTP virtual server 2 } } stream { # Configuration specific to TCP and affecting all virtual servers server { # configuration of TCP virtual server 1 } }
對於大多數指令,在另一個上下文(子上下文)中定義的上下文將繼承父級中包含的偽指令的值。若要覆寫從父程序繼承的值,請在子上下文中包含該指令。
要更改設定檔才能生效,NGINX必須重新載入該檔案。可以重新啟動nginx程序或發送reload訊號來升級配置,而不會中斷目前請求的處理。
以上是Nginx設定檔詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!