Apache可通过mod_proxy和mod_proxy_balancer实现动态请求的反向代理与负载均衡,无需Nginx;需启用proxy、proxy_http、proxy_balancer、lbmethod_byrequests等模块,配置balancer组指定后端服务器及权重、会话保持,并通过ProxyPass将动态路径转发至集群,静态资源由Apache直供。

将 Apache 动态请求分发到多个后端应用服务器,本质是配置反向代理 + 负载均衡。核心依赖 mod_proxy 和 mod_proxy_balancer 模块,不需额外安装 Nginx 或第三方组件。
启用必要模块
确保以下模块已加载(以 Debian/Ubuntu 为例):
- sudo a2enmod proxy proxy_http proxy_balancer lbmethod_byrequests
- 若用 AJP 协议(推荐 Tomcat 场景),再启用:a2enmod proxy_ajp
- 重启服务:sudo systemctl restart apache2
定义后端服务器集群
在虚拟主机或主配置中添加 balancer 组,例如:
<Proxy "balancer://app-cluster">
BalancerMember http://192.168.1.10:8080 route=app1 loadfactor=2
BalancerMember http://192.168.1.11:8080 route=app2 loadfactor=1
BalancerMember http://192.168.1.12:8080 route=app3 loadfactor=1
ProxySet lbmethod=byrequests
ProxySet stickysession=JSESSIONID|jsessionid
</Proxy>
说明:
Apache Superset 是一个广泛采用的开源 BI 平台,用于 SQL 探索、图表构建和仪表板交付。当代理需要查询仓库数据、组装仪表板或使用成熟的分析界面解释指标而不是临时笔记本代码时,此技能非常有用。
-
route 值需与后端应用(如 Tomcat 的
jvmRoute)匹配,用于会话保持 - loadfactor 控制权重,数值越大承接请求越多
- stickysession 启用基于 Cookie 的会话粘性,避免登录态丢失
绑定动态路径转发
只把特定动态路径(如 /api、/app、根路径)交给集群处理:
- 全部动态请求走集群:ProxyPass / balancer://app-cluster/
- 仅 API 请求转发:ProxyPass /api balancer://app-cluster/api
- 必须配反向代理头:ProxyPassReverse / balancer://app-cluster/
注意:静态资源(如 /static、/images)建议由 Apache 直接提供,不进代理链。
可选增强项
提升生产环境健壮性:
- 健康检查:添加 ping=5(每 5 秒探活)或 retry=60(故障后 60 秒再试)
- 超时控制:在 Proxy 段加 ProxySet timeout=30
- 查看状态页:开放 ProxyPass /balancer-manager ! 并配合访问控制

















