Apache web服务器负载平衡



我们有一个安装了apache web服务器的in-out环境要求,其中ssl和非ssl端口分别配置为侦听8080和4443。现在我想根据输入对请求进行负载平衡,如果传入的请求是ssl,则应该将请求负载平衡为"https",如果不是ssl,则应将请求负载均衡为"http"。已经尝试了以下方法,但没有如预期的那样起作用。有人能帮忙吗?

<Proxy balancer://mybalancerhttp>
BalancerMember http://localhost1/
BalancerMember http://localhost2/
ProxySet lbmethod=byrequests
</Proxy>
ProxyPass / "balancer://mybalancerhttp/"
ProxyPassReverse / "balancer://mybalancerhttp/"
<Proxy balancer://mybalancerhttps>
BalancerMember https://localhost1/
BalancerMember https://localhost2/
ProxySet lbmethod=byrequests
</Proxy>
ProxyPass / "balancer://mybalancerhttps/"
ProxyPassReverse / "balancer://mybalancerhttps/"

感谢

这些指令很好,但您需要根据客户端请求决定发送到哪里。

最简单的方法是将每个代理程序集及其平衡器定义移动到它们自己的虚拟主机。

这是

<VirtualHost *:8080>
ServerName yourhostname.example.com
<Proxy balancer://mybalancerhttp>
BalancerMember http://localhost1/
BalancerMember http://localhost2/
ProxySet lbmethod=byrequests
</Proxy>
ProxyPass / "balancer://mybalancerhttp/"
ProxyPassReverse / "balancer://mybalancerhttp/"
</VirtualHost>
<VirtualHost *:4443>
ServerName yourhostname.example.com
SSLEngine on
SSLProxyEngine on
....certs and all needed directives
<Proxy balancer://mybalancerhttps>
BalancerMember https://localhost1/
BalancerMember https://localhost2/
ProxySet lbmethod=byrequests
</Proxy>
ProxyPass / "balancer://mybalancerhttps/"
ProxyPassReverse / "balancer://mybalancerhttps/"
</VirtualHost>

我也遇到了类似的问题(/平衡器管理器只在HTTP上工作,而不是在HTTPS上),在我的情况下,解决方案是在文件"中添加此配置;ssl.conf";而不是";httpd.conf";。

最新更新