Nginx配置文件
NGINX與其他服務類似,因爲它具有以特定格式編寫的基於文本的配置文件。 默認情況下,文件名爲nginx.conf
並放在/etc/nginx
目錄中(對於開源NGINX產品,位置取決於用於安裝NGINX和操作系統的軟件包系統,它通常位於/usr/local/nginx/conf/etc/nginx
或/usr/local/etc/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;
幾個頂級指令(稱爲上下文)將適用於不同流量類型的指令組合在一起:
指定在這些上下文之外的指令是在主上下文中。
在每個流量處理上下文中,可包括一個或多個服務器上下文來定義控制請求處理的虛擬服務器。 您可以在服務器環境中包含的指令根據流量類型而有所不同。
對於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
}
}
對於大多數指令,在另一個上下文(子上下文)中定義的上下文將繼承父級中包含的僞指令的值。 要覆蓋從父進程繼承的值,請在子上下文中包含該指令。 有關上下文遺留的更多信息,請參閱proxy_set_header僞指令的文檔。
要更改配置文件才能生效,NGINX必須重新加載該文件。可以重新啓動nginx進程或發送reload
信號來升級配置,而不會中斷當前請求的處理。