ssl - 几分钟后 HTTPS 连接停止工作

标签 ssl https azure-service-fabric traefik

我有以下设置:

  • 运行 5 台机器的 Service Fabric 集群,多个服务在 Docker 容器中运行
  • 一个开放了 443 端口的公共(public) IP,转发到运行 Traefik 的服务
  • Traefik 终止 SSL,并将请求代理到通过 HTTP 请求的服务

这是我得到的行为:

  • 对 https://的第一个请求非常非常慢。 Chrome 通常会在超时或“无内容”错误后最终加载它。 Powershell 中的 Invoke-WebRequest 通常只是超时并显示“基础连接已关闭”消息。
  • 但是,加载后,我可以刷新内容或再次运行命令,它的响应非常非常快。只要 URL 有正常流量,它就会起作用。
  • 如果我离开一段时间(不确定时间,肯定是几分钟),它就会死掉并回到开头。

我的问题:

什么会导致 SSL 握手中断或永远中断?这个堆栈中的哪个组件是罪魁祸首? Service Fabric 是否超时?这是Traefik的事吗?如果它更稳定,我可以切换到 Nginx。我们在 IIS 上使用这些相同的证书,我们没有这个问题。

我可以使用 New Relic 之类的东西每分钟不断发送一个 ping 以保持事件状态,但我宁愿弄清楚为什么连接会在几分钟后消失。

调试它的最佳方法是什么?我在 Traefik 日志文件中没有看到任何内容(在 DEBUG 模式下),事实上,当它没有连接时,访问日志中根本没有请求记录。任何可以帮助调试的工具?谢谢!

最佳答案

所有 5 个节点上的 Traefik 服务是否健康,您可以检查所有 5 个实例的日志吗?否则,这可能会导致 Azure 负载均衡器在 Traefik 未监听的节点之间进行负载均衡,这会导致间歇性和缓慢的响应。一旦健康的 Traefik 响应,您将获得一个粘性 session cookie,这将使后续响应更快。您可以为 Traefik 日志启用 ApplicationInsights 监控,以节省您在所有机器上爬行的时间:https://github.com/jjcollinge/traefik-on-service-fabric#debugging .我还建议在没有 SSL 的情况下进行测试,以确保 Traefik 可以首先通过 HTTP 正确路由,然后再添加 HTTPS。这样你就会知道它与 SSL 配置有关(即正确安装证书、Traefik toml 配置、受信任的证书等)

关于ssl - 几分钟后 HTTPS 连接停止工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53165504/

相关文章:

android - 我们是否需要创建任何证书才能在 Android 中调用 https Web 服务

javascript - 我们可以在 HTTPS 和 HTTP 站点之间进行 GET 吗?

java - 从安全站点下载 CSV 文件

c# - 服务结构调试

php - GRPC 20908 ssl_transport_security.cc :1575] No match found for server name: 0. 0.0.0

internet-explorer - SSL 证书被旧版本的 IE 视为无效

google-maps - 使用 Google map 的混合内容

azure - 使用已部署的版本升级/降级 Service Fabric 应用程序

.net - Azure Service Fabric 使用 log4net 将日志记录到 AppInsights 中

java - 带有 https url 的 Apache Httpget - 主机未解决错误