【问题标题】:Received close_notify during handshake握手期间收到 close_notify
【发布时间】:2013-09-19 15:27:12
【问题描述】:

我已在所有 18 台服务器上配置了 SSL(HTTPS)。所有 18 台服务器都使用 SSL 相互通信。一切正常。突然我得到了这个错误:

“在握手期间收到 close_notify”

日志 ::@2011-06-03 03:36:17.372 [Log.class] ![LoadBalancer][com.somename.servlet][RequestServlet][callServlet] ==> [spnlapp01390.europe.intranet:8443/TCServer/TCHealthCheck] -> 原因: 在握手期间收到 close_notify #3996073076

奇怪的是应用程序重新启动后,它工作正常。我不知道这个原因。在哪种情况下会发生这种情况?这是因为网络问题吗?

【问题讨论】:

    标签: ssl


    【解决方案1】:

    close_notify 是 SSL 堆栈发送的用于指示连接终止的消息。如果没有更多数据可供查看,例如网络跟踪,很难(如果可能的话)确定发生这种情况的确切原因。

    【讨论】:

      【解决方案2】:

      我们在服务器上发现了同样的问题,我们的服务器太忙了,无法每秒提供 100 个连接。它适用于重新启动服务器,但在长寿情况下再次问题重复。当节点(服务器和客户端)位于网络中太远而无法到达时,您可能会经常看到这种情况。

      我们进行了硬件升级和服务器配置调整,例如增加打开文件 (linux) 值、允许使用最大可能端口、增加 Web 服务器中允许的最大线程和连接数。设置正确的 SO 和连接超时,然后管理客户端资源(连接)重用和正确的客户端关闭带来了良好的控制。减少通过 HTTP/HTTPS 通信(如心跳、用户访问前端应用程序和其他一些缓存更新客户端)对服务器的其他 ping 操作使场景变得更好。

      在性能较差的机器和 Windows 7 环境机器的情况下,我们仍然会遇到同样的问题。

      【讨论】:

      • 我们必须就这一点达成一致,我们还必须调查我们针对此问题的申请。无论您在服务器上提到和配置做什么都是绝对正确的。但如果换个角度考虑,我们应该在服务器端有一些机制来同时控制客户端请求。
      • 例如如果服务器一次同时处理(比如 100 个)请求,我们可以在服务器上保留一个入口点,在一定时间内阻止客户端请求。因此,一旦 100 个进程中的任何一个释放,服务器就可以接受下一个请求。所以,在这些方面我们可以在服务器上建立一个入口点。
      猜你喜欢
      • 1970-01-01
      • 2015-11-03
      • 2022-01-04
      • 1970-01-01
      • 2016-09-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-22
      相关资源
      最近更新 更多