1. 程式人生 > >Nginx配置檔案基本介紹

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程序。