当有多个 A 记录时,mod_proxy 如何确定从哪个 IP 地址加载

当有多个 A 记录时,mod_proxy 如何确定从哪个 IP 地址加载

所以我有 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 地址。

我建议您认真重新考虑这一点并执行以下操作:

  1. 对于已设置为 A 记录的服务器,将它们全部更改为响应不同命名的 DNS 条目,例如www0.mydomain.com&www1.mydomain.com等。
  2. 设置 Apache 配置以www0.mydomain.comwww1.mydomain.com将内容传送到负载均衡器的 IP。
  3. 配置负载均衡器以响应www.mydomain.com并设置 mod_proxy 设置以利用www0.mydomain.com&www1.mydomain.com

这确实是真正使用真正的负载平衡解决方案的唯一方法。因为说实话,DNS负载平衡是一团乱麻,在我从事网络和Unix工作的20多年中,我从未见过它在实践中运行良好。Apache mod_proxy的设置有点棘手,但设置效果很好,并为您提供了比您可能使用的更多的未来选项;非常具有前瞻性和可扩展性。

祝你好运!

相关内容