比如上面的配置:
events 塊涉及的指令主要影響 Nginx 服務器與用戶的網絡連接,常用的設置包括是否開啟對多 work process 下的網絡連接進行序列化,是否允許同時接收多個網絡連接,選取哪種事件驅動模型來處理連接請求,每個 word process 可以同時支持的最大連接數等。
上述例子就表示每個 work process 支持的最大連接數為 1024.
這部分的配置對 Nginx 的性能影響較大,在實際中應該靈活配置。
這算是 Nginx 服務器配置中最頻繁的部分,代理、緩存和日志定義等絕大多數功能和第三方模塊的配置都在這里。
需要注意的是:http 塊也可以包括 http全局塊、server 塊。
http全局塊配置的指令包括文件引入、MIME-TYPE 定義、日志自定義、連接超時時間、單鏈接請求數上限等。
這塊和虛擬主機有密切關系,虛擬主機從用戶角度看,和一臺獨立的硬件主機是完全一樣的,該技術的產生是為了節省互聯網服務器硬件成本。后面會詳細介紹虛擬主機的概念。
每個 http 塊可以包括多個 server 塊,而每個 server 塊就相當于一個虛擬主機。
而每個 server 塊也分為全局 server 塊,以及可以同時包含多個 locaton 塊。
最常見的配置是本虛擬機主機的監聽配置和本虛擬主機的名稱或IP配置。
一個 server 塊可以配置多個 location 塊。
這塊的主要作用是基于 Nginx 服務器接收到的請求字符串(例如 server_name/uri-string),對虛擬主機名稱(也可以是IP別名)之外的字符串(例如 前面的 /uri-string)進行匹配,對特定的請求進行處理。地址定向、數據緩存和應答控制等功能,還有許多第三方模塊的配置也在這里進行。