我正在尝试找出我的 Apache 配置出了什么问题,导致平衡器无法在端口 9001 上调用第二个 BalanceMember。或者甚至是某种故障排除选项。Apache 日志是空的。
使用以下配置,apache 正常启动,请求按预期从 80 转发到 9000。但是,当我关闭在 9000 上运行的服务时,在 9001 上运行的服务不会在对端口 80 的请求上被调用。我可以直接访问在 9001 上运行的服务,因此我确信它正在运行并且可用。
<VirtualHost X.X.X.X:80>
ServerName myportal.com
DocumentRoot /var/www/drig/data/www/myportal.com
SuexecUserGroup drig drig
ProxyStatus on
ProxyPreserveHost on
<Location /balancer-manager>
SetHandler balancer-manager
Order Deny,Allow
Allow from all
</Location>
<Proxy balancer://mycluster>
BalancerMember http://localhost:9000
BalancerMember http://localhost:9001 status=+H
</Proxy>
ProxyPass /balancer-manager !
ProxyPass / balancer://mycluster/
</VirtualHost>
答案1
尝试以下配置
<VirtualHost *:80>
ProxyRequests off
ServerName myportal.com
<Proxy balancer://mycluster>
BalancerMember http://localhost:9000
BalancerMember http://localhost:9001
Order Deny,Allow
Deny from none
ProxySet lbmethod=byrequests
</Proxy>
<Location /balancer-manager>
SetHandler balancer-manager
Order deny,allow
Allow from all
</Location>
ProxyPass /balancer-manager !
ProxyPass / balancer://mycluster/
</VirtualHost>
答案2
问题最终是 iptables 阻止了连接。这是在 EC2 实例上运行的,当我运行:
service iptables stop
通过上述配置,连接成功。