服务端没有开 OCSP stapling,抓取日志里每次新连接建立 TLS 要 600ms 左右,同一时段用户端的首字节也偏高。开了装订之后降到 200ms 以内,抓取量当天回升一成。

原因不止一个,得分开看。ssl_stapling 未开启 客户端要自己去查吊销状态;resolver 没有配置 装订拿不到响应;证书链缺中间证书 装订缓存不起来;CDN 回源不复用连接 每次都要完整握手。

测一次握手的耗时

curl -s -o /dev/null -w '%{time_appconnect}\n' https://www.example.com/

再往下开启装订并配置 resolver

ssl_stapling on; ssl_stapling_verify on; resolver 223.5.5.5 valid=300s;

随后确认装订响应存在

openssl s_client -connect www.example.com:443 -status | grep -i 'OCSP Response Status'

等前面都确认过,再统计日志里的连接耗时

awk '{print $NF}' access.log | sort -n | tail -5

白天有业务在跑,能验证的部分都压到了晚上做。

当时还开着另一个排查窗口,两边日志对照着看才定位到。

同一份数据我导出了两份,一份留底,一份拿来试。

改完先别撤,确认这几项。openssl 输出 OCSP Response Status 为 successful,time_appconnect 稳定在 200ms 以内。

装订省的是每个新连接的时间,抓取量大的站点收益明显,小站感知不强。如果同一现象隔几天又出现,说明根因没找到,别当偶发处理。

作者 9823189