Apache2 Ubuntu版如何配置负载均衡
导读:Apache2 Ubuntu 版负载均衡配置指南 一 准备与安装 更新索引并安装 Apache2:sudo apt update && sudo apt install apache2 启用核心代理与负载均衡模块:sudo...
Apache2 Ubuntu 版负载均衡配置指南
一 准备与安装
- 更新索引并安装 Apache2:sudo apt update & & sudo apt install apache2
- 启用核心代理与负载均衡模块:sudo a2enmod proxy proxy_http proxy_balancer lbmethod_byrequests
- 可选:启用与反向代理相关的辅助模块(如需要改写 HTML 或处理头部):sudo a2enmod proxy_html headers
- 重启使模块生效:sudo systemctl restart apache2
二 基本配置步骤
- 创建站点配置(示例:/etc/apache2/sites-available/loadbalancer.conf),内容示例:
<
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>
- 启用站点并重启:sudo a2ensite loadbalancer.conf & & sudo systemctl reload apache2
- 说明:将请求路径“/”反向代理到名为“balancer://mycluster”的后端集群;BalancerMember 可使用内网地址与端口,便于在 NAT/内网 环境部署
三 常用策略与会话保持
- 负载均衡算法(通过 lbmethod 指定,示例为按请求数轮询):
<
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>
- 会话粘性(Sticky Session):当应用使用 JSESSIONID 等会话标识时,可开启粘性以固定用户到同一后端
<
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 表示“热备”(仅当其它成员不可用时才使用),也可移除以参与正常轮询
- 提示:Apache httpd 的负载均衡以“尽力而为”的健康检查为主,如需更强主动探测,建议在前端叠加 HAProxy/Nginx 或应用层健康检查机制
四 启用 HTTPS 与前置注意事项
- 启用 SSL 模块并部署证书(示例):
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
- 前置注意事项
- 确保后端服务器与应用对来自 Apache 负载均衡器 的 IP 放行(安全组/防火墙/应用白名单)。
- 使用 route=xxx 有助于会话粘性、日志追踪与故障定位。
- 生产环境建议开启日志并关注访问与错误日志:/var/log/apache2/access.log、/var/log/apache2/error.log
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Apache2 Ubuntu版如何配置负载均衡
本文地址: https://pptw.com/jishu/764474.html
