负载均衡器背后的 Apache Event MPM
Apache2 Event MPM behind Loadbalancer
我目前正在配置一些 Web 服务器 运行 Apache2 和一个基于 PHP 的 Web 应用程序。服务器是 运行 相同的 PHP 相同系统配置的代码库,应该放在 AWS 上的负载均衡器后面。 LB 接受和终止 HTTPS 连接,并将它们作为 HTTP 流量转发到 Web 服务器,因此理论上 Event MPM 应该起作用并且有意义。
现在,由于服务器位于 LB 后面,我的问题是:在这种情况下,LB 和 Web 服务器之间的连接是否保持活动状态(“keepalive”)?此外,即使 HTTPS 连接被 LB 终止并作为未加密的 HTTP 流量转发,TLS 连接是否会导致 event-mpm 表现得像 worker-mpm?
在 AWS 支持的帮助下,我找到了问题的答案:
AWS LB 打开无限数量的连接到它背后的服务器,因此必须以某种方式配置 Apache 设置,以便工作线程的数量以最佳方式使用底层系统的资源。如果您发现服务器的内存和 CPU 负载都没有接近其容量(即使在压力测试期间),那么您可能想要增加 Apache 配置中的工作线程数 threads/processes。
此外:如果 LB 终止 HTTPS 连接并将它们作为 HTTP 流量转发,则事件 MPM 将按预期工作,这显然也是使用 AWS LB 时 Apache 的最佳 MPM,除非您在LB和服务器。在这种情况下,工人 MPM 就可以了。
我目前正在配置一些 Web 服务器 运行 Apache2 和一个基于 PHP 的 Web 应用程序。服务器是 运行 相同的 PHP 相同系统配置的代码库,应该放在 AWS 上的负载均衡器后面。 LB 接受和终止 HTTPS 连接,并将它们作为 HTTP 流量转发到 Web 服务器,因此理论上 Event MPM 应该起作用并且有意义。
现在,由于服务器位于 LB 后面,我的问题是:在这种情况下,LB 和 Web 服务器之间的连接是否保持活动状态(“keepalive”)?此外,即使 HTTPS 连接被 LB 终止并作为未加密的 HTTP 流量转发,TLS 连接是否会导致 event-mpm 表现得像 worker-mpm?
在 AWS 支持的帮助下,我找到了问题的答案:
AWS LB 打开无限数量的连接到它背后的服务器,因此必须以某种方式配置 Apache 设置,以便工作线程的数量以最佳方式使用底层系统的资源。如果您发现服务器的内存和 CPU 负载都没有接近其容量(即使在压力测试期间),那么您可能想要增加 Apache 配置中的工作线程数 threads/processes。
此外:如果 LB 终止 HTTPS 连接并将它们作为 HTTP 流量转发,则事件 MPM 将按预期工作,这显然也是使用 AWS LB 时 Apache 的最佳 MPM,除非您在LB和服务器。在这种情况下,工人 MPM 就可以了。