Nginx伺服器使用 master/worker 多程序模式。
主程序(Master process)啟動後,會接收和處理外部信号;
主程序啟動後通過fork() 函數産生一個或多個子程序(work process),每個子程序會進行程序初始化、
子產品調用以及對事件的接收和處理等工作。
主程序
主要功能是和外界通信和對内部其他程序進行管理,具體來說有以下幾點:
* 讀取Nginx配置檔案并驗證其有效性和正确性
* 建立、綁定和關閉socket
* 按照配置生成、管理工作程序
* 接收外界指令,比如重新開機、關閉、重載服務等指令
* 日志檔案管理
子程序(worker process)
是由主程序生成,生成數量可以在配置檔案中定義。該程序主要工作有:
* 接收用戶端請求
* 将請求依次送入各個功能子產品進行過濾處理
* IO調用,擷取響應資料
* 與後端伺服器通信,接收後端伺服器處理結果
* 資料緩存,通路緩存索引,查詢和調用緩存資料
* 發送請求結果,響應用戶端請求
* 接收主程序指令,如重新開機、重載、退出等