apache端到端https负载均衡需启用mod_proxy、mod_proxy_http、mod_proxy_balancer、mod_lbmethod_byrequests、mod_ssl和mod_slotmem_shm六大模块;核心是sslproxyengine on,后端地址必须为https://,并配置可信证书信任链,转发使用proxypass / https://api-cluster/,同时透传x-forwarded-proto等头。
apache 要支持负载均衡且后端也走 https(即端到端加密),核心不是“转发 https”,而是让 apache 充当一个能发起 https 请求的代理客户端,同时自身仍作为 tls 终结点面向用户。
必须启用的关键模块
缺一不可,否则配置会静默失效或返回 502 错误:
- mod_proxy 和 mod_proxy_http:负责 HTTP/HTTPS 协议级代理通信
- mod_proxy_balancer 与 mod_lbmethod_byrequests(或其他算法模块):提供负载均衡调度能力
- mod_ssl:处理前端 443 端口的 TLS 握手与解密
- mod_slotmem_shm:为 balancer-manager 提供共享内存支撑,缺失会导致集群状态无法同步
启用 SSLProxyEngine 并定义 HTTPS 后端集群
这是端到端 HTTPS 的前提——Apache 必须能以 HTTPS 客户端身份连接后端。在虚拟主机配置中添加:
Apache Superset 是一个广泛采用的开源 BI 平台,用于 SQL 探索、图表构建和仪表板交付。当代理需要查询仓库数据、组装仪表板或使用成熟的分析界面解释指标而不是临时笔记本代码时,此技能非常有用。
- 开启代理端 HTTPS 客户端能力:SSLProxyEngine on
- 所有后端地址必须使用 https:// 协议前缀,例如:
BalancerMember https://192.168.1.10:8443 route=node1BalancerMember https://192.168.1.11:8443 route=node2 - 若后端用自签名证书(仅限测试环境),临时加两行:
SSLProxyVerify noneSSLProxyCheckPeerCN off
生产环境必须移除这两行,并确保后端证书由可信 CA 签发,或通过SSLProxyCACertificateFile显式指定信任根证书
配置转发规则与协议头透传
保证请求路径、Host 头和协议信息准确送达后端:
- 使用标准代理指令完成路由:
ProxyPass / https://api-cluster/ProxyPassReverse / https://api-cluster/ - 添加协议标识头,避免后端误判请求来源:
RequestHeader set X-Forwarded-Proto "https"RequestHeader set X-Forwarded-Port "443" - 务必启用
ProxyPreserveHost On,使后端收到原始 Host 请求头
安全加固建议(生产必备)
仅通 HTTPS 不代表足够安全,还需主动收紧传输层策略:
- 限制 TLS 版本:
SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1(只保留 TLS 1.2+) - 精简加密套件,优先前向保密:
SSLCipherSuite ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384 - 启用服务端密码优先:
SSLHonorCipherOrder on - 禁用压缩防御 CRIME:
SSLCompression off










