|
多道處理模塊(MPMs) |
描述什麽是多道處理模塊以及它如何為Apache所使用。
Apache HTTP服務器被設計為一個強大、靈活的能夠在多種平臺上及不同的環境下工作的服務器。 不同的平臺和不同的環境經常產生不同的需求,或是會為了達到同樣的最佳效果而采用不同的方法。Apache憑借它的模塊設計很好的適應了大量不同的環境。這一設計使得網站管理員能夠在編譯時和運行時憑借載入不同的模塊來決定服務器的不同附加功能。
Apache 2.0將這種模塊式設計延伸到web服務器的基礎功能上。這個發布版本帶有多道處理模塊的選擇以處理本機的網絡端口綁定、接受請求和分出子進程來處理這些請求。
將模塊設計延伸到這一層面主要有一下兩大好處:
· Apache可以更純粹、更有效的支持各種操作系統。尤其是在mpm_winnt使用本地網絡特性以代替Apache 1.3中使用的POSIX層後,Windows版本的Apache現在有了更好的性能。這個優勢借助特定的MPM同樣延伸到其他各種操作系統。
· 服務器可以為某些特定的站點進行優化。比如說,需要更好縮擴性的站點可以選擇象worker這樣線程化的MPM,而需要更好的穩定性和兼容性以適應一些舊的軟件的站點可以用prefork。此外,象用不同的用戶號(perchild)伺服不同的站點這樣的特性也能提供了。
從用戶層面來講,MPMs更像其他Apache模塊。而主要的不同在於:不論何時,有且僅有一個MPM必須被載入到服務器中。現有的MPM列表可以在這裏找到模塊索引。
選擇一個MPM
MPM必須在編譯配置時進行選擇,並編譯到服務器中。如果編譯器能夠確定線程功能被啟用,它將會負責優化大量功能。因為一些MPM在Unix上使用了線程,而另外一些沒有使用,所以如果在編譯配置時選擇了MPM並編譯進Apache,Apache將會有更好的表現。
你可以在使用./configure腳本時用 --with-mpm= 名稱 選擇想要的MPM。名稱 就是你想要的MPM的名稱。
一旦服務器已經編譯完成,則可以用./httpd -l參數來決定使用哪個MPM。這個命令將列出所有已經被編譯到服務器中的模塊,包括MPM。
默認的MPM
下表列出了不同操作系統下默認的MPMs。如果你在編譯時沒有進行選擇,這將是默認選擇的MPM。
BeOS |
beos |
OS/2 |
mpmt_os2 |
Unix |
prefork |
Windows |
mpm_winnt |
|
返回 |
|