Apache2 Ubuntu 版负载均衡配置指南
一 准备与安装
二 基本配置步骤
<VirtualHost *:80>
ServerName mycluster.example.com
<Proxy "balancer://mycluster">
BalancerMember http://10.0.0.11:8080 route=backend1
BalancerMember http://10.0.0.12:8080 route=backend2
# 可按需增加更多后端
</Proxy>
ProxyPass / balancer://mycluster
ProxyPassReverse / balancer://mycluster
</VirtualHost>
三 常用策略与会话保持
<Proxy "balancer://mycluster">
BalancerMember http://10.0.0.11:8080 route=backend1
BalancerMember http://10.0.0.12:8080 route=backend2
ProxySet lbmethod=byrequests
</Proxy>
<Proxy "balancer://mycluster">
BalancerMember http://10.0.0.11:8080 route=backend1
BalancerMember http://10.0.0.12:8080 route=backend2
ProxySet lbmethod=byrequests
ProxySet stickysession=JSESSIONID
</Proxy>
# 若后端使用 URL 重写会话标识(如 ;jsessionid),可同时设置 scolonpathdelim
<Proxy "balancer://mycluster">
BalancerMember http://10.0.0.11:8080 route=backend1 status=+H
BalancerMember http://10.0.0.12:8080 route=backend2
</Proxy>
# +H 表示“热备”(仅当其它成员不可用时才使用),也可移除以参与正常轮询
四 启用 HTTPS 与前置注意事项
sudo a2enmod ssl
# 将证书与私钥放置于 /etc/ssl/(示例:server.crt / server.key)
# 新建或编辑 /etc/apache2/sites-available/loadbalancer-ssl.conf
<VirtualHost *:443>
ServerName mycluster.example.com
SSLEngine on
SSLCertificateFile /etc/ssl/server.crt
SSLCertificateKeyFile /etc/ssl/server.key
<Proxy "balancer://mycluster">
BalancerMember http://10.0.0.11:8080 route=backend1
BalancerMember http://10.0.0.12:8080 route=backend2
</Proxy>
ProxyPass / balancer://mycluster
ProxyPassReverse / balancer://mycluster
</VirtualHost>
# 启用站点并重启
sudo a2ensite loadbalancer-ssl.conf && sudo systemctl reload apache2