Apache-2.2

當同時使用 mpm_prefork_module 和 mpm_worker_module 時會發生什麼?

  • December 13, 2014

我遇到了這個 Apache 配置:

<IfModule mpm_prefork_module>
   StartServers          16
   MinSpareServers       16
   MaxSpareServers       32
   ServerLimit           400
   MaxClients            400
   MaxRequestsPerChild   10000
</IfModule>

<IfModule mpm_worker_module>
   StartServers          4
   MaxClients            1024
   MinSpareThreads       64
   MaxSpareThreads       192
   ThreadsPerChild       64
   MaxRequestsPerChild   0
</IfModule>

目前,只安裝了 mpm_prefork_module。但是如果在伺服器上安裝了 mpm_worker_module 會發生什麼?這個配置讓我很擔心。

這個問題類似,但答案只說如何找到目前正在使用的 MPM,而不是標準行為是什麼,或者行為是否未定義。

兩者都無法使用 - 一次只能使用其中一個 MPM。

你如何配置使用哪個取決於你的發行版如何處理它,但你不應該在同一個執行實例中同時擔心兩者,因為這不可能發生。

預設情況下,當您從二進製文件(rpm、deb、…或通過 yum、apt-get、…)安裝它們時,它總是使用 prefork。如果你想和 worker 一起執行,需要從原始碼建構。但是如果你執行 fcgi php,worker 的工作效果最好。

引用自:https://serverfault.com/questions/580767