從大體結構來看,nginx.conf文件可分為三部分組成,分別分為全局快,events塊和http塊。在http塊中包含http全局快,多個server塊。而每個server塊中可以包含server全局塊和多個location塊。在同一配置塊中嵌套的配置塊,各個之間不存在次序關系。
#### 1、全局塊
全局塊是默認配置文件從開始到events塊之間的一部分內容,主要設置影響Nginx服務器正題運行的配置指令。
通常包括:用戶(組)、worker process、worker_rlimit_nofile、nginx進程pid存放路徑、日志存放路徑、類型、配置文件引入等。
#### 2、events塊
events塊配置主要影響Nginx服務器與用戶的網絡連接。
常用包括:是否開啟對多worker process下的網絡連接序列化、是否允許同時接受多個網絡連接請求、選取那種事件驅動模型處理連接請求以及每個work process可以同時支持的最大連接數等。
#### 3、http塊
http塊是Nginx服務器配置的重要組成部分,代理,緩存和日志定義等多數功能和第三方模塊配置都可以放在此塊中。
首先聲明http塊描述的不包括server塊,只講述http的全局塊內容。
常用包括:文件引入、mime-type定義、日志自定義、是否使用sendfile傳輸文件、連接超時時間、單連接請求上限等。
#### 4、server塊
server塊和“虛擬主機”概念有著密切聯系。
什么是虛擬主機?
虛擬主機又稱虛擬服務器、主機空間或網頁空間,它是一種技術。該技術是為了節省互聯網服務硬件成本而出現的。
每一個http塊包含多個server塊,而每個server塊就相當于一臺虛擬主機,它內部可以有多臺主機聯合提供服務,一起對外提供在邏輯上關系密切的一組服務(或網站)。
在server全局塊中,常用包括:虛擬主機的監聽配置和虛擬主機的名稱或IP配置。
#### 5、location塊
在每個server塊下可以有多個location塊。嚴格來說,location是server塊的一個指令。
location塊的主要作用是,基于Nginx服務器接收到的請求字符串,對除虛擬主機之外的字符串進行匹配,對特定的請求進行處理。
常用包括:地址定向、數據緩存、應答控制等。