apache高并发https性能优化核心是协同提升tls握手速度、连接复用稳定性与协议先进性:必须全局配置sslsessioncache shmcb缓存及300秒超时,启用ocsp装订、tls 1.3与http/2,并在https虚拟主机中合理设置keepalive参数且与后端(如tomcat)对齐,最后通过openssl实测session-id复用验证效果。

Apache 处理高并发 HTTPS 请求时,性能瓶颈常不在网络带宽,而在 TLS 握手开销、连接复用失效、内存争用和协议层效率。优化核心是让每个连接“更快建立、更久复用、更少计算”,而非单纯增加进程或线程数。
启用并精准调优 SSLSessionCache
这是 HTTPS 高并发下最关键的缓冲区配置,直接影响 TLS 握手频率:
- 使用 shmcb 共享内存缓存(非 dbm 或 file),例如:
SSLSessionCache shmcb:/var/cache/apache2/ssl_scache(2097152)(2 MB,适合峰值 5000+ 并发) - 显式指定子缓存数量:
SSLSessionCache "shmcb:/var/cache/apache2/ssl_scache(2097152)"后追加32,即shmcb:/path(2097152)32,避免锁争用 - 必须配 老化超时:
SSLSessionCacheTimeout 300(5 分钟),防止缓存条目长期滞留 - 确保缓存目录存在且属主为 Apache 运行用户(如
www-data):mkdir -p /var/cache/apache2 && chown www-data:www-data /var/cache/apache2
强制 TLS 1.3 + HTTP/2 并关闭老旧协议
TLS 1.3 将握手从 2-RTT 缩至 1-RTT(支持 0-RTT),HTTP/2 多路复用可大幅降低连接数压力:
Apache Superset 是一个广泛采用的开源 BI 平台,用于 SQL 探索、图表构建和仪表板交付。当代理需要查询仓库数据、组装仪表板或使用成熟的分析界面解释指标而不是临时笔记本代码时,此技能非常有用。
- 禁用所有不安全旧协议:
SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1 +TLSv1.2 +TLSv1.3 - 在 HTTPS 虚拟主机内启用 HTTP/2:
Protocols h2 http/1.1(需 Apache ≥2.4.17、OpenSSL ≥1.0.2) - 开启 OCSP 装订减少吊销检查延迟:
SSLUseStapling on<br>SSLStaplingCache "shmcb:/var/cache/apache2/ssl_stapling(128000)"
匹配 MPM 模式与 KeepAlive 行为
HTTPS 下 KeepAlive 效果高度依赖 TLS 复用和后端协同,不能孤立设置:
- 推荐使用 event MPM(非 prefork),它对长连接和空闲连接管理更高效;确认已启用:
a2enmod mpm_event,并禁用 prefork - 在 HTTPS
<virtualhost></virtualhost>中设:KeepAlive On<br>KeepAliveTimeout 5<br>MaxKeepAliveRequests 100
- 若反向代理到 Tomcat 或其他后端,同步调整其连接器参数(如
keepAliveTimeout="5000"),保持两端超时阶梯对齐
卸载 TLS 计算到前端负载层(高流量场景)
当单机 HTTPS QPS 稳定超过 800,CPU 常被加密解密占满。此时应考虑架构级优化:
- 在负载均衡器(如 Nginx、SLB 或云厂商 LB)上终止 SSL,后端 Apache 仅处理 HTTP 流量
- 前端 LB 负责证书管理、会话复用、OCSP 装订及 TLS 1.3 协商,Apache 专注业务响应
- 该模式可降低 Apache CPU 30–60%,同时提升连接吞吐稳定性,适用于视频 API、大文件下载等场景










