优先使用ECDHE密钥交换,禁用RSA和DHE;启用TLS 1.3压缩至1-RTT;强制会话复用并绑定CPU亲和性,可显著降低高并发下非对称运算与握手往返开销。

高并发 HTTPS 场景下,TLS 密钥交换是性能关键瓶颈,主要卡在非对称运算耗时、握手往返多、算法协商开销大。优化核心不是提升单核算力,而是选对算法、压减交互、复用状态、绑定资源。
优先使用 ECDHE 密钥交换,禁用 RSA 和 DHE
RSA 密钥交换需服务端用私钥解密预主密钥,2048 位运算在高并发下 CPU 占用陡增;DHE 计算强度接近两次 RSA,完全不适用于高并发。ECDHE 基于椭圆曲线(如 secp256r1 或 X25519),256 位即可达到 RSA-3072 安全等级,实测加解密吞吐快 3–5 倍。
- 在
ssl_ciphers中显式靠前放置 ECDHE 套件,例如:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-CHACHA20-POLY1305 - 确保
ssl_prefer_server_ciphers on生效,避免客户端强制低效套件 - 彻底移除含
RSA(非 ECDHE-RSA)、DH、DHE、3DES、RC4的套件
启用 TLS 1.3 并限定密钥交换参数
TLS 1.3 将密钥交换与身份验证合并进首次往返,握手从 TLS 1.2 的 2-RTT 压缩至 1-RTT,CPU 解密开销降低 30%~50%,且强制前向保密(PFS)。
- 配置协议仅启用安全版本:
ssl_protocols TLSv1.2 TLSv1.3;(禁用 TLSv1.0/v1.1) - 通过
ssl_conf_command锁定曲线和签名算法,减少协商分支:ssl_conf_command Curves X25519:secp256r1;ssl_conf_command SignatureAlgorithms ecdsa_secp256r1_sha256:rsa_pss_rsae_sha256; - 确认 OpenSSL ≥ 1.1.1f、Nginx ≥ 1.17.0,否则 TLS 1.3 无法启用或降级
强制双会话复用机制,跳过密钥交换
完整握手必须执行密钥交换与证书验证,而复用可直接复用已协商的密钥材料,实测耗时下降超 70%。需同时开启服务端缓存与客户端票证。
- 在
http块顶层配置共享会话缓存:ssl_session_cache shared:SSL:10m;(10MB 约支持 4 万会话) - 设合理超时:
ssl_session_timeout 10m;(高频短连接场景下比 4h 更平衡内存与复用率) - 启用 Session Tickets 并轮换密钥:
ssl_session_tickets on;ssl_session_ticket_key /etc/nginx/ticket.key;(建议每月轮换)
绑定 CPU 亲和性,保障 ECC 运算缓存热度
ECDHE 运算高度依赖 L1/L2 缓存与 TLB,worker 进程跨核迁移会导致缓存失效、分支预测重置,延迟激增。
- 配置自动亲和:
worker_processes auto;worker_cpu_affinity auto; - 用
pidstat -u -p $(pgrep nginx) 1验证各 worker 是否稳定运行在独立物理核上 - 同步调优系统参数:
ulimit -n 65536、net.core.somaxconn = 65535、vm.swappiness = 1



















