天天看點

Nginx - 伺服器的程序

到目前為止,我們一共提到Nginx伺服器的三大類程序:一類是主程序,另一類是由主程序生成的工作程序,還有剛才提到的用于為緩存檔案建立索引的程序。

1. 主程序(Master Process)

Nginx伺服器啟動時運作的主要程序。它的主要功能是與外界通信和對内部其他程序進行管理,具體來說有以下幾點:

■ 讀取Nginx配置檔案并驗證其有效性和正确性。

■ 建立、綁定和關閉Socket。

■ 按照配置生成、管理和結束工作程序。

■ 接收外界指令,比如重新開機、更新及退出伺服器等指令。

■ 不中斷服務,實作平滑重新開機,應用新配置。

■ 不中斷服務,實作平滑更新,更新失敗進行復原處理。

■ 開啟日志檔案,擷取檔案描述符。

■ 編譯和處理Perl腳本。

2. 工作程序(Worker Process)

由主程序生成,生成數量可以通過Nginx配置檔案指定,正常情況下生存于主程序的整個生命周期。該程序的主要工作有以下幾項:

■ 接收用戶端請求。

■ 将請求依次送入各個功能子產品進行過濾處理。

■ IO調用,擷取響應資料。

■ 與後端伺服器通信,接收後端伺服器處理結果。

■ 資料緩存,通路緩存索引、查詢和調用緩存資料。

■ 發送請求結果,響應用戶端請求。

■ 接收主程式指令,比如重新開機、更新和退出等指令。

工作程序完成的工作還有很多,我們在這裡列出了主要的幾項。從這些工作中可以看到,該程序是Nginx伺服器提供Web服務、處理用戶端請求的主要程序,完成了Nginx伺服器的主體工作。是以,在實際使用中,作為伺服器管理者,我們應該重點監視工作程序的運作狀态,保證Nginx伺服器對外提供穩定的Web服務。

3. 緩存索引重建及管理程序(Cache Loader & Cache Manager)

圖3.1中的Cache子產品,主要由緩存索引重建(Cache Loader)和緩存索引管理(Cache Manager)兩類程序完成工作。緩存索引重建程序是在Nginx服務啟動一段時間之後(預設是1分鐘)由主程序生成,在緩存中繼資料重建完成後就自動退出;緩存索引管理程序一般存在于主程序的整個生命周期,負責對緩存索引進行管理。

緩存索引重建程序完成的主要工作是,根據本地磁盤上的緩存檔案在記憶體中建立索引中繼資料庫。該程序啟動後,對本地磁盤上存放緩存檔案的目錄結構進行掃描,檢查記憶體中已有的緩存中繼資料是否正确,并更新索引中繼資料庫。

繼續閱讀