我们有这样的 apache 负载平衡配置:
<Proxy balancer://acluster>
BalancerMember ajp://10.10.10.1:8123 route=r1
BalancerMember ajp://10.10.10.2:8123 route=r2
</Proxy>
ProxyPass / balancer://acluster
#ProxyPassReverse / balancer://acluster
ProxyPassReverse / ajp://10.10.10.1:8123
ProxyPassReverse / ajp://10.10.10.2:8123
我想知道,使用这多个 ProxyPassReverse 条目而不是使用注释掉的那行的目的是什么或有什么效果。谢谢
答案1
TL;DR:只需使用ProxyPassReverse / balancer://acluster
。
这些单独的线是毫无意义的ProxyPassReverse
,因为Apache 模块 mod_proxy_balancer给出示例配置参考:ProxyPassReverse
balancer://
<Proxy "balancer://mycluster"> BalancerMember "http://192.168.1.50:80" BalancerMember "http://192.168.1.51:80" </Proxy> ProxyPass "/test" "balancer://mycluster" ProxyPassReverse "/test" "balancer://mycluster"
文档ProxyPassReverse
指示未指定多个ProxyPassReverse
指令会发生什么情况。在最坏的情况下,对平衡器成员的请求可能会有Host
另一个平衡器成员的重写标头。这是否会导致问题取决于后端服务器的配置。
ProxyPassReverse
此外,如果当前带有单独行的配置有效,那么它将不是一个易于管理的解决方案,因为每次添加时都需要对配置进行额外的更新BalancerMember
。