我在 CentOS 7 上有一个集群负载均衡器(pacemaker、corosync、apache 2.4)。有两个配置文件,一个用于实际平衡站点,一个用于平衡器管理器。当我访问平衡器管理器站点时,它实际上显示一个空白页面(10.0.0.20 的负载均衡器管理器..... 服务器版本,服务器构建 ------------------结尾), 就像这 - 但无论我将 SetHandler 指令放在哪里(直接放入 vhost1.conf、放入 httpd.conf 等),它都保持不变。我还在请求日志中收到 HTTP 200。
虚拟主机1.conf:
<Virtualhost x.x.x.x:443>
SSLEngine On
.....
.....
<Proxy balancer://mycluster>
ProxySet failonstatus=503
BalancerMember http://10.0.0.21 loadfactor=5 connectiontimeout=2 retry=600
BalancerMember http://10.0.0.22 loadfactor=5 connectiontimeout=2 retry=600
BalancerMember http://10.0.0.23 loadfactor=1 connectiontimeout=2 retry=600
ProxySet lbmethod=bybusyness
</Proxy>
ProxyPass /myservices/ balancer://mycluster/myservices/
ProxyPassReverse /myservices/ balancer://mycluster/myservices/
</VirtualHost>
vhost2.conf:
Listen 10.0.0.20:8008
<VirtualHost 10.0.0.20:8008>
<Location /balancer-manager>
SetHandler balancer-manager
Require ip 10.0.0.1 10.0.0.2
</Location>
</VirtualHost>
有人知道为什么没有显示任何内容吗?
答案1
您已在配置了负载均衡器的同一虚拟主机中添加了平衡器管理器处理程序。您还需要排除以下位置“ProxyPass/平衡器管理器!”。
请参阅以下虚拟主机
<Virtualhost x.x.x.x:443>
SSLEngine On
ServerName abc.xyz.com
.....
<Location /balancer-manager>
SetHandler balancer-manager
Require ip 10.0.0.1 10.0.0.2
</Location>
ProxyPass /balancer-manager !
<Proxy balancer://mycluster>
ProxySet failonstatus=503
BalancerMember http://10.0.0.21 loadfactor=5 connectiontimeout=2 retry=600
BalancerMember http://10.0.0.22 loadfactor=5 connectiontimeout=2 retry=600
BalancerMember http://10.0.0.23 loadfactor=1 connectiontimeout=2 retry=600
ProxySet lbmethod=bybusyness
</Proxy>
ProxyPass /myservices/ balancer://mycluster/myservices/
ProxyPassReverse /myservices/ balancer://mycluster/myservices/
</VirtualHost>
使用上述 Virtuahost 配置,您可以通过以下方式访问平衡器管理器abc.xyz.com/balancer-manager