Apache-2.2
Apache 作為後端伺服器不會殺死孩子
我有 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 個以使其與您的配置內聯。您希望在連接從客戶端到達之前存在子程序。它加快了一切。這不是一件壞事。