关键在于区分客户端到apache(必须https)和apache到后端(可选http/https)两段加密;端到端https需启用sslproxyengine on、所有balancermember用https://地址,并配置可信证书或临时禁用校验(仅测试)。
apache 中 https 部署后做负载均衡转发,关键不是“把 https 转发出去”,而是明确两个加密段:客户端到 apache(必须 https),apache 到后端(可选 http 或 https)。真正安全的方案是端到端 https,即后端也启用 https,apache 以 https 客户端身份代理请求。
确保基础模块已启用
缺一不可,否则 ProxyPass 不生效或报 502:
- mod_proxy 和 mod_proxy_http:处理 HTTP/HTTPS 后端通信
- mod_proxy_balancer 和 mod_lbmethod_byrequests(或其他算法模块):支撑负载均衡逻辑
- mod_ssl:处理 443 端口 TLS 终结
- mod_slotmem_shm:提供共享内存,缺失会导致 balancer-manager 无法加载或集群状态异常
配置端到端 HTTPS 负载均衡(推荐)
适用于跨网段、混合云或内网不可信场景。要求每个后端服务(如 Tomcat)已开启 HTTPS Connector(如 8443 端口),并部署有效证书(或自签名证书需额外信任)。
Apache Superset 是一个广泛采用的开源 BI 平台,用于 SQL 探索、图表构建和仪表板交付。当代理需要查询仓库数据、组装仪表板或使用成熟的分析界面解释指标而不是临时笔记本代码时,此技能非常有用。
- 在虚拟主机中启用 SSLProxyEngine on —— 这是 Apache 作为 HTTPS 客户端连接后端的前提,漏掉直接 502
- 定义负载均衡组,所有 BalancerMember 地址必须以 https:// 开头,例如:
BalancerMember https://192.168.1.10:8443 route=node1
BalancerMember https://192.168.1.11:8443 route=node2
ProxySet lbmethod=byrequests - 若后端用自签名证书,临时加两行(仅测试):
SSLProxyVerify none
SSLProxyCheckPeerCN off
生产环境务必替换为可信 CA 签发证书,并移除这两行 - 转发规则写成:
ProxyPass / https://api-cluster/
ProxyPassReverse / https://api-cluster/
配置 SSL 终结 + 后端 HTTP(常见简化方案)
适合内网可信环境。Apache 解密 HTTPS 请求,再以明文 HTTP 转发给后端(如 Tomcat 的 8080 端口),降低后端 TLS 计算压力。
- 无需 SSLProxyEngine on,因为不走上游 HTTPS
- 后端地址用 http://,例如:
BalancerMember http://192.168.1.10:8080 route=app1
BalancerMember http://192.168.1.11:8080 route=app2 - 必须加 ProxyPreserveHost On,确保后端收到原始 Host 头
- 后端应用需识别 X-Forwarded-Proto: https 头,否则可能生成 HTTP 跳转链接;Tomcat 可配:
RemoteIpValve + proxyPort="443" scheme="https"
补充关键加固项
无论哪种模式,都建议加上:
- ProxyRequests Off:禁用正向代理,防滥用
-
Timeout 和 retry 参数:避免单点故障拖垮整体,例如:
BalancerMember https://192.168.1.10:8443 timeout=5 retry=60 - 开启 balancer-manager(仅限内网访问)便于实时查看节点状态:
SetHandler balancer-manager
Require ip 127.0.0.1 192.168.1.0/24










