我已经在多台服务器(我们的负载均衡器)上安装了 nginx。
当我使用以下方式检查我的 SSL 安装时https://www.ssllabs.com/我每台服务器都获得了 A+ 的结果,但第一台服务器总是
会话恢复(缓存) 不(已分配 ID 但不被接受)
而其他所有服务器都有
会话恢复(缓存) 是的
所有服务器均自动配置,因此完全相同。我还使用以下命令检查了 nginx 配置:
/usr/sbin/nginx -T > lb1.nginx
/usr/sbin/nginx -T > lb2.nginx
...
但并没有什么区别。
每个服务器上的 ssl_session 配置如下:
ssl_session_timeout 1d;
ssl_session_cache shared:SSL:100m;
现在到了有趣的部分:
我有十个负载均衡器,第一个由 ssllabs 标记为“会话恢复:否”。
现在我将第一台服务器的 IP 地址移至第二台服务器。ssllabs 的第一个请求现在转到第二台服务器,并显示“会话恢复:否”。第二个请求也转到第二台服务器,并显示“会话恢复:是”。但两个查询都到达同一台服务器。
在我看来,ssl labs 对第一个请求做了一些不同的事情。
还有其他原因导致 ssllabs 只对第一个请求显示没有会话恢复,无论哪个服务器是“第一个”?
答案1
我认为如果你当前的配置中还没有这个配置,那么你需要添加这个配置,
ssl_session_cache shared:SSL:50m;
ssl_session_timeout 5m;
你确定两台服务器的配置相同吗?请使用“nginx -T”命令检查,此命令将显示实际的 nginx 配置。如果两台服务器之间“nginx -T”命令的结果存在差异,则错误是由于你没有重新加载 nginx 配置。谢谢