Apache-2.2

Apache 作為後端伺服器不會殺死孩子

  • November 5, 2012

我有 apache 作為 nginx 的後端伺服器。這是我使用的 prefork MPM 的配置:

StartServers          1
MinSpareServers       1
MaxSpareServers       5
MaxClients           10
MaxRequestsPerChild   0

如你所見,MinSpareServers 為 1,這意味著 apache 將殺死所有空閒程序,直到只有一個。當我重新啟動伺服器時 - 沒關係,系統中只有 2 個 apache 程序(父程序和子程序)。在我載入頁面後,apache 開始產生子節點,當頁面載入時 - 有 5 個 apache 子節點。我的伺服器上的負載非常低,所以我認為沒有理由增加孩子。我怎樣才能讓 apache 正常工作?

Apache 完全按預期工作。Prefork MPM 的工作原理是每個請求一個程序。

您的瀏覽器使用大約 8 個並發連接來並行載入頁面。因此,將在您的伺服器上啟動 8 個程序,直到請求完成並且瀏覽器斷開連接。父伺服器將看到有超過您的MaxSpareServers指令的未使用伺服器並殺死其中 3 個以使其與您的配置內聯。

您希望在連接從客戶端到達之前存在子程序。它加快了一切。這不是一件壞事。

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