启用ssl_session_tickets并统一部署48字节密钥可实现跨Nginx节点的无状态TLS会话复用;需严格同步密钥文件、正确配置server块内指令、禁用session_cache,并支持多密钥轮换与快速验证。
直接在所有 Nginx 节点上启用 ssl_session_tickets 并统一部署相同的 48 字节密钥文件,就能激活客户端携带的无状态 TLS Ticket,实现跨服务器的 HTTPS 加速——无需共享内存、Redis 或任何外部组件,任意节点都能独立解密复用会话。
密钥必须字节级完全相同,且不可编辑、不可重复:
openssl rand 48 > /etc/nginx/ticket.key
ls -l /etc/nginx/ticket.key 输出必须为 48
chmod 400 /etc/nginx/ticket.key,属主为 Nginx 运行用户(如 www-data 或 nginx)避免被虚拟主机继承覆盖,务必写在每个 HTTPS server{} 块内:
ssl_session_tickets on;ssl_session_ticket_key /etc/nginx/ticket.key;ssl_session_cache 行(二者互斥,Nginx 优先走 cache)生产环境不可长期使用单密钥,Nginx 最多支持 10 个密钥,按顺序加载:
ssl_session_ticket_key /etc/nginx/ticket.key.v202606;<br>ssl_session_ticket_key /etc/nginx/ticket.key.v202605;<br>ssl_session_ticket_key /etc/nginx/ticket.key.v202604;
ssl_session_ticket_keys 指令终端两条命令即可确认,无需抓包:
openssl s_client -connect example.com:443 -servername example.com 2>/dev/null | grep "New, TLS"
openssl s_client -connect example.com:443 -reconnect -servername example.com 2>/dev/null | grep "Reused, TLS"
Session-ID: 字段为空