Nginx配置檔案基本介紹
NGINX和NGINX Plus與其他服務類似,因為它們使用以特定格式編寫的基於文字的配置檔案。預設情況下,該檔名為nginx.conf,而NGINX Plus則放在/ 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;
背景
一些頂級指令(稱為上下文)將適用於不同流量型別的指令組合在一起:
- event- 一般連線處理
- http - HTTP流量
- mail - 郵件流量
- stream - TCP和UDP流量
虛擬伺服器
在每個流量處理上下文中,您包含一個或多個伺服器塊,以定義控制請求處理的虛擬伺服器。您可以包含在伺服器上下文中的指令因流量型別而異。
對於HTTP流量(http上下文),每個伺服器指令控制對特定域或IP地址的資源請求的處理。伺服器上下文中的一個或多個位置上下文定義瞭如何處理特定的URI集。
對於郵件和TCP / UDP流量(郵件和流上下文),伺服器指令各自控制到達特定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 starting with '/one'
}
location /two {
# configuration for processing URIs starting with '/two'
}
}
server {
# configuration of HTTP virtual server 2
}
}
stream {
# Configuration specific to TCP/UDP and affecting all virtual servers
server {
# configuration of TCP virtual server 1
}
}
通常,子上下文 - 包含在另一個上下文(其父項)中的子上下文 - 繼承父級別包含的指令的設定。某些指令可以出現在多個上下文中,在這種情況下,您可以通過在子上下文中包含該指令來覆蓋從父項繼承的設定。有關示例,請參閱proxy_set_header指令。
重新載入配置
要使配置檔案的更改生效,必須重新載入。您可以重新啟動nginx程序或傳送過載訊號以升級配置,而不會中斷當前請求的處理。有關詳細資訊,請參閱在執行時控制NGINX程序。