在 3 个 Apache 服务器上设置负载平衡

在 3 个 Apache 服务器上设置负载平衡

我想在我创建的 3 台 Apache 服务器上设置负载平衡。

我为服务器使用的 3 个地址是192.168.151.101.102.103

然后我创建了一个负载平衡服务器并给它的地址192.168.151.105

在负载平衡服务器中,我创建了以下文件并对其进行了以下配置

$ vi /etc/apache2/conf.d/proxy-balancer

<Proxy balancer://mycluster>
BalancerMember http://192.168.151.101
BalancerMember http://192.168.151.102
BalancerMember http://192.168.151.103
</Proxy>
ProxyPass / balancer://mycluster

然后我需要配置我们的代理以允许从所有主机进行访问:

$ vi /etc/apache2/mods-enabled/proxy.conf

然后我在网上看到你需要

“将此文件中的“Deny from all”行更改为“Allow from all”。然后重新启动 Apache:”

但是,我一开始并没有Deny all线路,因此我不确定我应该实际更改什么才能允许所有主机进行访问。

那么是否有人知道我是否应该更改这个配置文件,或者是否有人有其他方法来进行负载平衡?

注意:我已启用所有代理模块

答案1

遵循 Apache 建议(http://httpd.apache.org/docs/2.2/mod/mod_proxy.html), 如果你的 apache 只作为 ReverseProxy 工作你必须配置如下:

ProxyRequests Off
# Then the config you actually have
<Proxy balancer://mycluster>
BalancerMember http://192.168.151.101
BalancerMember http://192.168.151.102
BalancerMember http://192.168.151.103
</Proxy>
ProxyPass / balancer://mycluster

Deny from all当您使用代理进行用户导航时,该行通常是针对代理的,而不是针对 ReverseProxy 的(这是您的情况)

答案2

这是对我有用的真实世界配置的示例

我必须使用单独的 ProxyPassReverse 指令才能使重定向/链接正常工作。即使是最后的 / 似乎也很重要。


<Proxy balancer://mycluster>
Order deny,allow
Allow from all
BalancerMember http://192.168.151.101
BalancerMember http://192.168.151.102
BalancerMember http://192.168.151.103
</Proxy>
ProxyPass / balancer://mycluster
ProxyPassReverse / http://192.168.151.101/
ProxyPassReverse / http://192.168.151.102/
ProxyPassReverse / http://192.168.151.103/

相关内容