Apache配置Ubuntu服务器负载均衡技巧
导读:Apache在Ubuntu上的负载均衡实用技巧 一 快速上手步骤 安装与启用模块 安装 Apache2:sudo apt update && sudo apt install apache2 启用模块:sudo a2en...
Apache在Ubuntu上的负载均衡实用技巧
一 快速上手步骤
- 安装与启用模块
- 安装 Apache2:sudo apt update & & sudo apt install apache2
- 启用模块:sudo a2enmod proxy proxy_http proxy_balancer lbmethod_byrequests
- 创建站点配置
- 新建:sudo nano /etc/apache2/sites-available/loadbalancer.conf
- 示例要点:
< VirtualHost *:80> ServerName yourdomain.com < Proxy balancer://mycluster> BalancerMember http://10.0.0.11:8080 route=node1 BalancerMember http://10.0.0.12:8080 route=node2 ProxySet lbmethod=byrequests < /Proxy> ProxyPass / balancer://mycluster/ ProxyPassReverse / balancer://mycluster/ ProxyPreserveHost On < /VirtualHost>
- 启用站点与生效
- 启用:sudo a2ensite loadbalancer.conf
- 测试配置:sudo apache2ctl configtest
- 重启:sudo systemctl restart apache2
- 连通性检查
- 确保负载均衡器可访问后端 8080 端口,且云安全组/防火墙已放行 80/443 与后端端口。
二 关键配置技巧
- 负载均衡算法
- 轮询:lbmethod=byrequests
- 按流量:lbmethod=bytraffic(需启用模块 mod_lbmethod_bytraffic)
- 按连接数:lbmethod=least_conn(需启用模块 mod_lbmethod_least_conn)
- 权重与故障策略
- 权重:loadfactor=10(默认 1,可按性能分配)
- 超时与重试:timeout=10 retry=60 maxattempts=3
- 被动健康检查:ping=5(每 5 秒发 OPTIONS 探测)
- 主动故障判定:failonstatus=500,503
- 热备节点:status=+H(主节点恢复后自动切回)
- 会话保持
- Cookie 粘滞:stickysession=JSESSIONID|ROUTEID
- 配合路由 Cookie(示例思路):
Header add Set-Cookie "ROUTEID=.%{ BALANCER_WORKER_ROUTE} e; path=/" env=BALANCER_ROUTE_CHANGED ProxyPass / balancer://mycluster/ stickysession=ROUTEID
- 连接与缓冲优化
- 连接池:在 < Proxy *> 或具体集群上设置 maxconnections=50 acquire=3000
- 缓冲:ProxyIOBufferSize 8192、ProxyReceiveBufferSize 16384
- 头部与主机头
- 反向代理常用:ProxyPreserveHost On,确保后端获取原始 Host 头。
三 健康检查与运维监控
- 内置管理器
- 启用(仅内网访问):
< Location /balancer-manager> SetHandler balancer-manager Require host localhost 192.168.1.0/24 < /Location> - 访问:http://your-lb/balancer-manager,可在线查看节点请求分布、错误计数、启停节点等
- 启用(仅内网访问):
- 状态页
- 启用 info 模块后,可访问 /server-status、/server-info 做基础诊断
- 安全建议
- 生产环境务必限制 balancer-manager 的访问来源(如仅内网网段),避免被滥用。
四 常见问题与排查
- 502 Bad Gateway
- 检查后端是否在 8080 正常监听、负载均衡器到后端网络是否可达、以及 firewalld/安全组 规则
- 适当增大 ProxyTimeout,避免因慢响应被判定为失败
- 负载不均
- 调整 loadfactor,或改用 least_conn;核查后端性能差异与慢查询
- 会话丢失
- 启用 stickysession=JSESSIONID|ROUTEID,并为应用生成/识别一致的会话标识
- 管理页面打不开
- 确认已加载 mod_status/mod_info,且 Require 规则允许你的来源 IP。
五 生产可用性与安全加固
- 高可用
- 单台 Apache 仍可能成为单点,建议前置 Keepalived VIP 或结合云负载均衡实现主备/集群
- 加密传输
- 启用 SSL/TLS(端口 443),对外提供 HTTPS;证书与私钥妥善管理
- 加固要点
- 限制 /balancer-manager 访问、开启访问日志与必要的审计、定期轮换密钥与证书
- 压测验证
- 使用 ab/jmeter 验证权重、算法、超时与重试策略的有效性,观察错误率与延迟分布。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Apache配置Ubuntu服务器负载均衡技巧
本文地址: https://pptw.com/jishu/787411.html
