proxy_ssl_session_reuse on 本身不直接优化连接,而是让 nginx 复用已有 tcp 连接时跳过完整 tls 握手(2–3 rtt),将建连延迟压至 20–40ms;但必须置于 upstream 块内、搭配 keepalive、http/1.1 长连接、sni 透传及 tls 协议严格对齐才能生效,否则复用率归零。

proxy_ssl_session_reuse on 本身不直接“优化连接”,而是让 Nginx 在复用已有 TCP 连接时,跳过完整 TLS 握手(2–3 RTT),将建连延迟压到 20–40ms。但它必须依托正确的连接复用机制和协议一致性才能生效,单独开启几乎无效。
必须写在 upstream 块里才起作用
这个指令只在 upstream 上下文中有效,且仅对 https:// 协议的后端地址生效。
- 写在 location、server 或 http 块里语法无错,但会被静默忽略
- 正确写法示例:
upstream api_backend {
server api.example.com:443;
keepalive 32;
proxy_ssl_session_reuse on;
} - 若 upstream 中用域名(如 api.prod.cloud:443),必须同时加 proxy_ssl_server_name on;否则 SNI 不传递,后端无法匹配证书,复用立即失败
依赖 keepalive 和 HTTP/1.1 长连接
TLS 会话复用以底层 TCP 连接复用为前提。没有稳定长连接池,复用就是空谈。
安全地重置 OpenClaw agent sessions,支持备份、预览、恢复和批量操作。用于:1) 清理过期的 agent 会话上下文,2) 重置特定 agents 的 session,3) 批量重置六部/秘书 sessions,4) 查看和恢复历史备份。当用户需要"reset session"、"清理 se...
- upstream 中设置连接池大小:keepalive 32(建议值 16–64,按后端吞吐能力调整)
- 在 proxy_pass 所在的 location 或 server 块中启用 HTTP/1.1 并清理 Connection 头:
proxy_http_version 1.1;
proxy_set_header Connection ''; - 确保后端响应头含 Connection: keep-alive;若返回 Connection: close,Nginx 会立刻断连,复用中断
TLS 协议与后端必须严格对齐
只要以下任一环节不一致,就会退化为完整握手,复用率归零:
- TLS 版本(如 Nginx 配 TLSv1.2,后端只支持 TLSv1.3)
- 密钥套件(proxy_ssl_ciphers 应固定,避免动态变化)
- SNI(由 proxy_ssl_server_name on 保障)
- Session Ticket 密钥(多实例后端启用 ticket 时,所有节点必须共享同一 ssl_session_ticket_key)
- 推荐显式配置:
proxy_ssl_protocols TLSv1.2 TLSv1.3;
proxy_ssl_ciphers "ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384";
验证是否真实复用,不能只看配置
配置写上不等于生效,需通过日志和行为确认:
- 在 log_format 中加入 $upstream_ssl_session_reused 变量,观察是否频繁输出 "t"
- 开启 debug 日志(error_log ... debug),搜索 "SSL reused session" 与 "SSL new session" 的比例
- 抓包观察 TLS 流程:复用成功时只有 Change Cipher Spec + Finished,不应出现 ServerHello → Certificate 等完整握手包
- 目标复用率应 ≥90%,低于此值说明某环节未对齐










