Ubuntu 上 Nginx 启用 SSL 的性能影响与优化要点
一 影响性能的关键因素
二 快速自检与定位
openssl speed aes-128-gcm ecdhe-rsa-aes128-gcm-sha256 对比不同算法吞吐;若明显偏低,优先排查 OpenSSL 是否启用 AES-NI/NEON 与编译优化。server{} 中加入 ssl_conf_command Options KTLS;(仅 TLSv1.3 场景),开启 error_log ... debug; 后用 grep -E "BIO_get_ktls_send|SSL_sendfile" /var/log/nginx/error.log 查看;验证后请关闭调试日志以免性能受损。echo QUIT | openssl s_client -connect example.com:443 -servername example.com -status 2>/dev/null | grep -A 17 -B 17 'OCSP response:',看到 OCSP Response Status: successful 即为生效。ab/wrk/curl 对 HTTP 与 HTTPS 分别压测(如 curl -w '%{speed_download}\n' -o /dev/null https://...),对比 TTFB、P95/P99 延迟、RPS/吞吐、CPU 差异,作为优化前后对照。三 关键配置与建议值
ssl_protocols TLSv1.2 TLSv1.3;ssl_ciphersuites TLS_AES_256_GCM_SHA384:TLS_AES_128_GCM_SHA256:TLS_CHACHA20_POLY1305_SHA256;ssl_prefer_server_ciphers on;ssl_session_cache shared:MozSSL:10m;(约可缓存数千会话,内存占用小、收益大)ssl_session_timeout 1d;ssl_session_tickets on;(可选,配合会话缓存进一步降低握手)ssl_stapling on; ssl_stapling_verify on; ssl_trusted_certificate /path/to/fullchain.pem; resolver 8.8.8.8 8.8.4.4 valid=300s;ssl_buffer_size 4k; 以降低 TTFB;大文件传输可维持 16k 或做场景化调优。ssl_conf_command Options KTLS;(需 TLSv1.3),验证后再长期开启。四 场景化优化建议
openssl speed 验证实际 CPU 表现。五 常见陷阱与排查
openssl speed 结果正常。error_log ... debug; 会产生大量 I/O,显著影响性能,验证 kTLS 后请关闭。