过时会话问题?SSL会话中无法分配新会话

我不确定这里出了什么问题;这可能是一个 bug。我有几个网站出现了类似的虚假错误:

2021/09/29 12:46:34 [alert] 11364#11364: *1226080 could not allocate new session in SSL session shared cache "SSL" while SSL handshaking, client: x.x.42.250, server: 0.0.0.0:443

在其中一个网站上,我设法通过以下方式增加了最大会话数:

  after_bundle_exec:
    - replace:
       filename: "/etc/nginx/nginx.conf"
       from: "  worker_connections 768;"
       to: "  worker_connections 1280;"
  after_letsencrypt:
    - replace:
       filename: "/etc/nginx/letsencrypt.conf"
       from: "  worker_connections 768;"
       to: "  worker_connections 1280;"

我以为这已经解决了问题(第二天没有再看到此类错误),但现在我又在该网站上看到了这些错误。

这有点超出了我的专业范围,但我最好的猜测是, somehow 大量连接保持活跃状态而未被断开,导致 nginx 会话资源耗尽?

这两个都是标准安装,流量并不特别高。一个是 AWS 上的 4GB 实例,另一个是 DigitalOcean 的 8GB droplet(每天约 4 万次页面浏览量)。我有其他流量大得多的网站,但我不记得以前见过这种情况,所以我在想这里是否有什么新情况。

又发生这种情况了。我看到 /etc/nginx/conf.d/discourse.conf 中的 ssl_session_timeout 设置为 1d。为什么它会从 默认值10m 更改为这个值?

我也在日志中看到了这些——数量不多但它们确实出现了。你是否找到了关于那个配置更改的任何信息,或者你是否为自己改回了更短的时间范围?

我们可以将缓存大小从 1MB 增加到大约 40MB。据我所知,它需要与超时时间同步,而我们只增加了一个而没有增加另一个。

2 个赞

这说得通。改变缓存大小这件事有人处理了吗?