linux中用apache实现负载均衡的核心是启用mod_proxy、mod_proxy_http和mod_proxy_balancer模块,通过反向代理将请求分发至多个后端服务器,支持权重分配、热备节点、健康检查及多种调度策略,并可启用balancer-manager监控页。

Linux 中用 Apache 实现负载均衡,核心是启用 mod_proxy 和 mod_proxy_balancer 模块,通过反向代理把请求分发到多个后端服务器。它不依赖额外软件(如 Nginx),原生支持、配置清晰,适合中小规模 Web 架构。
启用必要模块
确保以下三个模块已加载:
-
mod_proxy:提供基础代理能力 -
mod_proxy_http:支持 HTTP 协议转发(若后端是 Tomcat,可换为mod_proxy_ajp) -
mod_proxy_balancer:提供负载均衡调度逻辑
在 Debian/Ubuntu 上执行:
sudo a2enmod proxy proxy_http proxy_balancer
在 CentOS/RHEL 上编辑 /etc/httpd/conf/httpd.conf,取消以下行的注释:
LoadModule proxy_module modules/mod_proxy.so<br>LoadModule proxy_http_module modules/mod_proxy_http.so<br>LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
重启服务生效:sudo systemctl restart apache2(或 httpd)
定义后端服务器组
在虚拟主机配置(如 /etc/apache2/sites-available/000-default.conf)中添加:
Apache Superset 是一个广泛采用的开源 BI 平台,用于 SQL 探索、图表构建和仪表板交付。当代理需要查询仓库数据、组装仪表板或使用成熟的分析界面解释指标而不是临时笔记本代码时,此技能非常有用。
<proxy balancer:><br> BalancerMember http://192.168.1.10:8080 loadfactor=3<br> BalancerMember http://192.168.1.11:8080 loadfactor=2<br> BalancerMember http://192.168.1.12:8080 status=+H # 热备节点<br></proxy>
说明:
-
loadfactor控制权重,数值越大承接请求越多(默认为 1) -
status=+H表示该节点为热备,仅当其他节点全部不可用时才启用 - 支持
timeout、retry(故障恢复间隔)、ping(健康检查间隔)等参数
配置反向代理与调度策略
继续在同一虚拟主机内添加:
ProxyRequests Off<br>ProxyPass / balancer://myapp/<br>ProxyPassReverse / balancer://myapp/<br>ProxySet lbmethod=byrequests
关键点:
-
ProxyRequests Off必须关闭正向代理,防止被滥用 -
lbmethod可选值:byrequests(默认,按请求数轮询)、bytraffic(按流量)、bybusyness(按当前排队请求数) -
ProxyPassReverse保证后端返回的重定向头、Cookie 路径等被正确改写
启用状态监控页(可选但推荐)
方便实时查看各节点状态、请求分配情况:
<location><br> SetHandler balancer-manager<br> Require local<br> # 生产环境建议限制 IP,例如:<br> # Require ip 192.168.1.5<br></location>
配置完成后访问 http://your-server-ip/balancer-manager 即可查看图形化状态页。
整个过程不涉及复杂编译,纯配置驱动,只要后端服务能正常响应 HTTP 请求,Apache 就能完成健康探测和智能分发。注意防火墙放行对应端口,后端服务器无需额外安装组件。









