![当有多个 A 记录时,mod_proxy 如何确定从哪个 IP 地址加载](https://linux22.com/image/607725/%E5%BD%93%E6%9C%89%E5%A4%9A%E4%B8%AA%20A%20%E8%AE%B0%E5%BD%95%E6%97%B6%EF%BC%8Cmod_proxy%20%E5%A6%82%E4%BD%95%E7%A1%AE%E5%AE%9A%E4%BB%8E%E5%93%AA%E4%B8%AA%20IP%20%E5%9C%B0%E5%9D%80%E5%8A%A0%E8%BD%BD.png)
所以我有 mod_proxy 设置指向
ProxyPass / http://www.mydomain.com/
ProxyPassReverse / http://www.mydomain.com/
并且www.mydomain.com
有 4 个 A 记录(即 DNS 负载平衡),mod_proxy 是否会从该列表中为其所有工作进程挑选 1 个 IP,并在 DNS 记录的 ttl 上过期,还是每个工作进程都会从该列表中挑选自己的 IP?
我正在使用此 DNS 负载平衡的 Web 服务器前面设置一个代理,并且我不想将其 IP 地址硬编码到 BalancerMember 指令中,因为这样他们就无法在不更改代理的情况下添加和删除 IP 地址。
答案1
我认为混合使用 DNS 负载平衡和 mod_proxy 负载平衡不会有任何帮助。DNS 负载平衡中的 IP 选择独立于您拥有的任何 Apache 设置,因此您的负载平衡器将受制于掷骰子时出现的任何 DNS IP 地址。
我建议您认真重新考虑这一点并执行以下操作:
- 对于已设置为 A 记录的服务器,将它们全部更改为响应不同命名的 DNS 条目,例如
www0.mydomain.com
&www1.mydomain.com
等。 - 设置 Apache 配置以
www0.mydomain.com
仅www1.mydomain.com
将内容传送到负载均衡器的 IP。 - 配置负载均衡器以响应
www.mydomain.com
并设置 mod_proxy 设置以利用www0.mydomain.com
&www1.mydomain.com
这确实是真正使用真正的负载平衡解决方案的唯一方法。因为说实话,DNS负载平衡是一团乱麻,在我从事网络和Unix工作的20多年中,我从未见过它在实践中运行良好。Apache mod_proxy的设置有点棘手,但设置效果很好,并为您提供了比您可能使用的更多的未来选项;非常具有前瞻性和可扩展性。
祝你好运!