Nginx HTTPS高性能SSL卸载核心是前端TLS终止、后端明文转发、头信息透传与主动性能调优:必须配置listen 443 ssl、proxy_pass http://、X-Forwarded-Proto透传、真实IP传递,并启用会话复用、TLS1.2/1.3、OCSP Stapling、HSTS及证书自动化轮换。

Nginx 实现 HTTPS 的高性能 SSL 卸载,核心是让 Nginx 承担全部 TLS 处理工作,后端只收明文 HTTP 请求。这不只是“配通 HTTPS”,而是围绕性能、安全和稳定性做系统性配置。
关键配置必须到位
SSL 卸载不是加几行 ssl_* 指令就完事。以下四项缺一不可:
-
前端监听明确启用 SSL:用
listen 443 ssl;(Nginx 1.15+ 不再支持ssl on) -
后端转发必须用 http://:例如
proxy_pass http://backend_pool;,确保卸载真正发生 -
透传协议头不能漏:
proxy_set_header X-Forwarded-Proto $scheme;,否则后端无法判断原始请求是 HTTPS -
真实 IP 传递要完整:同时设置
X-Real-IP $remote_addr;和X-Forwarded-For $proxy_add_x_forwarded_for;
性能优化必须主动做
Nginx 能扛数万 TLS 并发,前提是调优到位。默认配置在高负载下会迅速成为瓶颈:
-
启用会话复用:加上
ssl_session_cache shared:SSL:10m; ssl_session_timeout 4h;,可减少 70% 以上重复握手开销 -
强制使用现代协议与密钥套件:禁用 TLSv1.0/1.1,明确写
ssl_protocols TLSv1.2 TLSv1.3;和高强度套件如ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256; -
开启 OCSP Stapling:添加
ssl_stapling on; ssl_stapling_verify on;,避免客户端直连 CA 验证证书,降低首包延迟 -
worker 进程匹配 CPU 核心:确认
worker_processes auto;且worker_connections 65535;已设
与后端协同不能出错
卸载成功不等于链路可靠。很多问题出在负载均衡与卸载的配合上:
-
upstream 地址必须是 http://:比如
upstream backend_pool { server 10.0.1.10:8080; server 10.0.1.11:8080; },绝不能写 https:// -
健康检查走 HTTP:若用
health_check或自定义location /health,务必用 HTTP 请求,否则因证书或协议不一致导致误判下线 -
错误自动转移要启用:加
proxy_next_upstream error timeout http_502;,单台后端挂掉时流量能秒级切走 -
日志记录协议来源:在 log_format 中加入
$http_x_forwarded_proto和$scheme,排查“后端跳回 HTTP”类问题一目了然
安全加固建议同步落地
卸载后,Nginx 就是全站 TLS 入口,安全策略应集中强化:
-
HSTS 强制启用:加
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always; -
禁止明文回退:HTTP server 块中用
return 301 https://$host$request_uri;,不用 rewrite -
私钥权限严格限制:确保证书私钥文件权限为
600,属主为 nginx 运行用户(如 www-data 或 nginx) -
证书轮换自动化:配合 certbot 的
--deploy-hook "nginx -s reload",避免人工遗漏



















