要让https站点稳定达到200ms的ttfb,需借助cdn或https加速网关实现tls终结于边缘pop点,并在节点启用http/2、session cache、tls 1.3、ocsp stapling,同时对静态资源设置cache-control: public, max-age=31536000以复用缓存、跳过tls全流程。

要让 HTTPS 站点稳定达到
硬件与系统层:避免第一公里卡顿
SSL/TLS 加解密是 CPU 密集型操作,尤其在 RSA 握手或大量短连接场景下。若服务器 CPU 频率低、核心数少或启用了节能模式(如 Intel SpeedStep / AMD Cool’n’Quiet),首字节延迟极易突破 30ms。
- 选用支持 AES-NI 指令集的现代 CPU(Intel Core i5 及以上、AMD Ryzen 3 及以上),可将对称加解密性能提升 5–10 倍
- 关闭 CPU 动态调频,设置为 performance governor;Nginx worker 进程建议绑定独立物理核(使用 worker_cpu_affinity)
- 确保内核开启 TCP Fast Open(net.ipv4.tcp_fastopen = 3),配合客户端支持时可省去一次 SYN-ACK 往返
Nginx + TLS 协议层:7 项必调配置
这些配置共同作用,把 TLS 握手、密钥协商、首包发送压缩到最简路径:
- 启用 HTTP/2 并禁用 HTTP/1.1 回退:在 listen 指令中明确写 http2 ssl,不加 http1;避免协议协商开销
- 开启 SSL session 缓存:用 ssl_session_cache shared:SSL:10m(约可缓存 4 万个会话),命中时跳过完整握手
- 关闭 TLS 1.0/1.1,仅保留 1.2 和 1.3:TLS 1.3 握手只需 1-RTT(甚至 0-RTT),大幅压缩建连时间
- 启用 OCSP Stapling:配置 ssl_stapling on 和 ssl_stapling_verify on,避免客户端直连 CA 验证证书
- 调小 ssl_buffer_size 至 4k 或 2k:默认 16k 会攒包等待填满,牺牲 TTFB 换吞吐;对首屏敏感站点必须压小
- 精简 cipher suite,优先 TLS 1.3 原生套件:例如 ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256
- 添加 HSTS 头(max-age=31536000; includeSubDomains):避免 HTTP→HTTPS 重定向带来的额外 RTT
证书与部署层:减少信任链验证耗时
证书链不完整、中间 CA 不被客户端缓存、OCSP 响应慢,都会在 TLS 握手末尾引入不可控延迟(常达 100–300ms)。
- 使用 Let’s Encrypt 或阿里云免费 DV 证书时,务必下载「完整链」版本(含中间证书),而非仅域名证书
- 在 Nginx 的 ssl_certificate 文件中,按顺序拼接:域名证书 → 中间证书(不含根证书),确保 ssl_trusted_certificate 指向同一文件或单独 CA 包
- 定期用 openssl s_client -connect example.com:443 -servername example.com -status 验证 OCSP stapling 是否生效、响应是否在 100ms 内返回
网络与边缘层:绕过长链路瓶颈
即使服务端优化到位,跨省、跨境或运营商骨干网抖动仍会让真实用户看到 >200ms 的 TTFB。这时需借助边缘能力收口延迟。
- 接入 CDN 或 HTTPS 加速网关(如阿里云 HTTPS 加速网关),让 TLS 终结在离用户最近的 POP 点
- 确保 CDN 节点也启用上述全部 TLS 优化(HTTP/2、session cache、TLS 1.3、OCSP Stapling),避免边缘成为新瓶颈
- 对静态资源(JS/CSS/图片)启用 Cache-Control: public, max-age=31536000,让 CDN 和浏览器缓存复用,跳过 TLS 全流程











