2009年6月12日 星期五

Apache Platform平台運作說明

當我在拆解Apache的同時,發現到一個不能忽略的問題,我們必須將視野提高到較高層次來觀看原始碼(source code),才不會見樹不見林,也較能對Apache的運作有深刻的體悟!樹、林是兩難。

Apache HTTP Server(簡稱Apache)通常在作業系統啟動的時候,就會開始在背後執行,成為 Linux中的Deamon,或是Windows中的Service,有一件事:Apache在啟動的時候,是比較耗費系統資源,所以通常是OS啟動後就Apache提供服務,不太像一般程式,你要用到才去呼叫。

Apache的程式當中分成兩個階段執行,一個是啟動階段(start-up phase),另一個是運行階段(operational pahse)。

啟動階段(start-up phase)的作用有:讀取組態檔(httpd.conf或是.htaccess);載入各個模組(module);初始化系統資源,包含log檔、共享記憶體、資料連結等。

啟動階段完成之後,進入運行階段(operational pahse),運行階段主要由MPM(Multi-Processing Module)模組接管控制,MPM會產生一個或多個的執行緒池(Thread Pool)或是行程(process),像Windows中只會有兩個process(即httpd.exe),其中之一是啟動階段的Master Process,另一個是運行階段的Child Process,由Child Process產生Thread Pool,此後由Thread Pool服務所有的Request請求。主要是因為Windows是支援Multi-Thread的作業系統。


沒有留言:

張貼留言