Apache配置HTTPS负载均衡需三步:启用mod_ssl、mod_proxy等核心模块;配置带证书的443虚拟主机;在其中定义balancer://组并用ProxyPass代理,HTTPS终止于Apache前端,后端可为HTTP。

Apache 配置 HTTPS 并配合负载均衡,核心是三件事:启用 SSL 和代理相关模块、配置带证书的虚拟主机、在其中嵌入 balancer:// 负载组并正确使用 ProxyPass。整个过程不依赖额外软件,但必须确保后端服务器能响应 HTTP(或 AJP),HTTPS 终止在 Apache 前端即可。
启用必要模块
确保以下模块已加载(通常在 /etc/httpd/conf/httpd.conf 或 /etc/apache2/mods-enabled/ 下):
-
mod_ssl(处理 HTTPS) -
mod_proxy、mod_proxy_http(反向代理基础) -
mod_proxy_balancer、mod_lbmethod_byrequests(负载均衡必需)
在 CentOS/RHEL 上可执行:
yum install mod_ssl<br>systemctl restart httpd
确认模块已启用:httpd -M | grep -E "(ssl|proxy|balancer)"
准备 SSL 证书文件
将证书链(.cer 或 .pem)、私钥(.key)和中间证书(fullchain.pem)放在安全路径,例如:
/etc/httpd/conf/ssl/web.com.crt/etc/httpd/conf/ssl/web.com.key/etc/httpd/conf/ssl/web.com.chain.pem
权限建议设为 600,属主为 root:root。
Apache Superset 是一个广泛采用的开源 BI 平台,用于 SQL 探索、图表构建和仪表板交付。当代理需要查询仓库数据、组装仪表板或使用成熟的分析界面解释指标而不是临时笔记本代码时,此技能非常有用。
配置 HTTPS + 负载均衡的虚拟主机
在 /etc/httpd/conf.d/ssl-lb.conf 中写入以下内容(替换域名、IP 和路径):
<VirtualHost *:443><br> ServerName example.com<br> SSLEngine on<br> SSLProtocol all -SSLv2 -SSLv3<br> SSLCipherSuite HIGH:!RC4:!MD5:!aNULL:!eNULL:!EXPORT:!DES:!3DES:!PSK:!SRP:!CAMELLIA<br> SSLHonorCipherOrder on<br><br> SSLCertificateFile /etc/httpd/conf/ssl/web.com.crt<br> SSLCertificateKeyFile /etc/httpd/conf/ssl/web.com.key<br> SSLCertificateChainFile /etc/httpd/conf/ssl/web.com.chain.pem<br><br> # 启用代理对 HTTPS 后端的支持(如需代理到 https://backend)<br> SSLProxyEngine on<br> # 若后端是自签名或域名不匹配,可临时忽略验证(生产慎用)<br> # SSLProxyVerify none<br> # SSLProxyCheckPeerCN off<br><br> # 定义负载均衡组<br> <Proxy balancer://myapp><br> BalancerMember http://192.168.1.10:8080 loadfactor=3<br> BalancerMember http://192.168.1.11:8080 loadfactor=1<br> BalancerMember http://192.168.1.12:8080 status=+H # 热备节点<br> ProxySet lbmethod=byrequests<br> </Proxy><br><br> # 将所有请求代理到负载组<br> ProxyPreserveHost On<br> ProxyPass / balancer://myapp/<br> ProxyPassReverse / balancer://myapp/<br><br> # 可选:添加请求头,让后端知道原始协议和主机<br> RequestHeader set X-Forwarded-Proto "https"<br> RequestHeader set X-Forwarded-Host "example.com"<br></VirtualHost>
说明:
-
loadfactor控制流量分配比例(如 3:1 表示前两台机器接收约 75% 请求) -
status=+H标记热备节点,仅当其他节点失效时才启用 -
ProxyPreserveHost On把原始 Host 头传给后端,利于虚拟主机识别 -
RequestHeader确保后端应用能正确生成 HTTPS 链接(如重定向、资源路径)
补充:HTTP 自动跳转 HTTPS
在 *:80 虚拟主机中添加强制跳转(避免用户手动输 http):
<VirtualHost *:80><br> ServerName example.com<br> Redirect permanent / https://example.com/<br></VirtualHost>
或更精确地只跳转特定路径(如非静态资源):
RewriteEngine On<br>RewriteCond %{HTTPS} off<br>RewriteRule ^(.*)$ https://%{HTTP_HOST}$1 [R=301,L]配置完成后运行 apachectl configtest 检查语法,再 systemctl restart httpd 生效。访问 https://example.com 即可看到请求被分发到后端各节点。

















