1. 启用HTTP/2协议
HTTP/2支持多路复用(Multiplexing),允许在单个TCP连接上并行传输多个请求/响应,显著减少延迟并提升吞吐量。在Nginx的server块中,将listen指令修改为listen 443 ssl http2;即可启用(需确保Nginx版本≥1.9.5)。
2. 优化SSL/TLS协议与加密套件
ssl_protocols TLSv1.2 TLSv1.3;。ssl_ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384';,并设置ssl_prefer_server_ciphers on;让服务器优先选择更安全的套件。3. 配置SSL会话缓存与会话票证
http块中添加ssl_session_cache shared:SSL:10m;(10MB缓存,可根据服务器内存调整),并设置ssl_session_timeout 10m;(会话有效期10分钟)。ssl_session_tickets on;(若不需要可关闭,如ssl_session_tickets off;)。4. 启用OCSP Stapling
OCSP Stapling通过服务器预先获取证书状态并缓存,避免客户端每次握手都向CA查询,减少握手延迟。配置如下:
ssl_stapling on;(开启OCSP Stapling)
ssl_stapling_verify on;(验证OCSP响应有效性)
ssl_trusted_certificate /etc/nginx/ssl/ca-bundle.crt;(指定包含根证书和中间证书的文件,用于验证OCSP响应)
resolver 8.8.8.8 8.8.4.4 valid=300s;(设置DNS解析器及缓存时间)
resolver_timeout 5s;(DNS查询超时时间)。
5. 调整Nginx核心参数
worker_processes auto;(自动匹配CPU核心数),worker_connections 4096;(每个进程的最大连接数,根据内存调整)。sendfile on;(零拷贝技术,减少内核态与用户态数据复制)、tcp_nopush on;(配合sendfile优化数据包发送)、tcp_nodelay on;(禁用Nagle算法,减少小数据包延迟)。keepalive_timeout 65;(保持连接超时时间,平衡资源占用与性能)。6. 启用Gzip压缩
压缩响应内容减少传输数据量,提升页面加载速度。配置gzip on;(开启Gzip),gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;(指定压缩的文件类型),gzip_comp_level 6;(压缩级别,6为平衡性能与压缩比的最佳选择),gzip_vary on;(添加Vary: Accept-Encoding头,避免缓存问题)。
7. 使用高性能硬件加速
ssl_engine on;(开启OpenSSL引擎)、ssl_engine_device /dev/pkcs11engine;(指定硬件设备路径)、ssl_engine_param "/path/to/config.xml";(配置硬件参数)启用,将SSL加密/解密任务卸载至硬件,减轻CPU负担。8. 优化证书管理
cat your_domain.crt ca_bundle.crt > your_domain_ca.crt),减少客户端验证时的多次请求,提升握手速度。sudo certbot --nginx -d yourdomain.com),自动处理证书续期,避免因证书过期导致的性能下降或服务中断。9. 监控与调优
nginx -T命令查看SSL会话缓存命中率(ssl_session_cache_hits)、握手时间等指标,或通过Prometheus+Granafa等工具实时监控SSL性能。sudo apt update && sudo apt upgrade nginx)和OpenSSL(sudo apt upgrade openssl)为最新版本,修复安全漏洞并提升性能。