几分钟后HTTPS连接停止工作

时间:2018-11-06 03:50:55

标签: ssl https azure-service-fabric traefik

我有以下设置:

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

这是我得到的行为:

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

我的问题:

什么会导致SSL握手中断或永久失效?应归咎于该堆栈中的什么组件? Service Fabric中是否发生超时?这是Traefik的东西吗?如果更稳定,我可以切换到Nginx。我们在IIS上使用了相同的证书,而我们没有这个问题。

我可以使用诸如New Relic之类的东西来不断地每分钟发送一次ping命令,以保持活动状态,但我宁愿弄清楚为什么几分钟后连接会中断。

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

1 个答案:

答案 0 :(得分:0)

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