Apache HTTPS性能优化核心是降低TLS握手开销、加密计算和证书验证延迟,关键措施包括:启用TLS 1.3并禁用旧协议;精简为ECDHE+AEAD密码套件;双轨会话复用(shmcb缓存+统一ticket密钥);开启OCSP Stapling;使用event MPM与HTTP/2。

Apache 处理 HTTPS 时的性能损耗,主要来自 TLS 握手开销、加密计算、证书验证延迟和连接复用不足。优化不是堆硬件,而是让每次加密连接更轻、更快、更稳。
启用 TLS 1.3 并禁用老旧协议
TLS 1.3 将完整握手从传统 2-RTT 缩减为 1-RTT,部分场景支持 0-RTT 恢复,首字节延迟明显下降。Apache 2.4.48+ 配合 OpenSSL 1.1.1+ 即可原生支持。
在主配置或虚拟主机中明确写:
SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1 +TLSv1.2 +TLSv1.3
不推荐用 +all 简写,避免意外启用不安全旧版本。若后端(如老版 Java 应用)暂不兼容 TLS 1.3,可保留 TLS 1.2,但必须关闭 TLS 1.1 及以下。
精简密码套件,聚焦 ECDHE + AEAD
RSA 密钥交换已过时,CBC 模式有安全风险且性能差。优先选用前向保密强、计算效率高的组合:
SSLCipherSuite ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:TLS_CHACHA20_POLY1305_SHA256 SSLHonorCipherOrder on
同时禁用不安全项:!aNULL:!MD5:!RC4:!DES:!CBC。这样既提升安全性,又降低 CPU 加解密负担。
Apache Superset 是一个广泛采用的开源 BI 平台,用于 SQL 探索、图表构建和仪表板交付。当代理需要查询仓库数据、组装仪表板或使用成熟的分析界面解释指标而不是临时笔记本代码时,此技能非常有用。
双轨会话复用:缓存 + 票据协同工作
完整握手耗时远高于复用。单靠一种机制容易失效:内存缓存(SSLSessionCache)受限于进程隔离;票据(SSLSessionTickets)依赖客户端支持与密钥一致性。
- 启用共享内存缓存:
SSLSessionCache shmcb:/var/run/ssl_scache(1048576) SSLSessionCacheTimeout 300
- 开启票据并统一密钥(多节点集群必须共用同一
ticket.key):SSLSessionTickets on SSLSessionTicketKeyFile /etc/ssl/private/ticket.key
开启 OCSP Stapling 减少证书吊销验证延迟
客户端若自行查询 OCSP 服务器,可能增加 100–300ms 延迟。Stapling 由 Apache 主动获取并随握手下发,规避网络等待。
启用方式:
SSLStapling on SSLStaplingVerify on SSLStaplingCache shmcb:/var/run/stapling_cache(512000) SSLStaplingResponderTimeout 5
确保 DNS 解析稳定,否则 stapling 失败会退化为客户端直连。
其他关键调优点
- 使用
eventMPM 替代prefork,更适合 HTTPS 长连接管理; - 在 HTTPS 虚拟主机中启用 HTTP/2:
Protocols h2 http/1.1; - 关闭 SSLCompression(CRIME 攻击风险,且无实际收益);
- 将通用 SSL 参数统一写入主配置,用
Include引入,避免每个<VirtualHost>重复定义; - 修改配置后始终用
apache2ctl configtest验证再reload,不重启。
不复杂但容易忽略。


















