【问题标题】:HTTPS connection stops working after a few minutes几分钟后 HTTPS 连接停止工作
【发布时间】:2019-04-09 11:14:38
【问题描述】:

我有以下设置:

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

这是我得到的行为:

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

我的问题:

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

我可以使用 New Relic 之类的东西每分钟不断发送一个 ping 以保持一切正常,但我宁愿弄清楚为什么几分钟后连接就会断开。

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

【问题讨论】:

  • 您是否使用本地集群进行测试?
  • 这是在 Azure..

标签: ssl https azure-service-fabric traefik


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2020-02-27
    • 1970-01-01
    • 2015-03-04
    • 1970-01-01
    • 1970-01-01
    • 2019-01-18
    • 1970-01-01
    • 2010-09-13
    • 1970-01-01
    相关资源
    最近更新 更多