我试图在我的计算引擎中使用纯粹的https。我创建了一个网络负载均衡器,它将我的实例转发到池中。但是,池经常无法进行运行状况检查,因为它不允许我配置使用https的运行状况检查。
我使用apache将80重定向到443.有没有人知道如何创建https运行状况检查或者是否按照重定向进行http运行状况检查?
感谢您的帮助。
- 编辑 -
失败5:不直接回答200响应代码Web服务器可能配置为重定向到返回HTTP 200响应代码的页面。健康检查不会遵循重定向;它希望健康检查页面直接返回200。
我们所使用的所有其他托管服务提供商都支持此基本功能。为什么不能这样做呢?我错过了什么?
答案 0 :(得分:0)
我花了一整天的时间在GCloud中为带有入口控制器的Kubernetes集群配置纯基于https的负载均衡器。
我终于开始工作了,所以也许我可以和那些使用相同配置的人分享我的经验。如果实例的健康检查失败,通常会看到以下内容访问您的网站URL。
Error: Server Error
The server encountered a temporary error and could not complete your request.
Please try again in 30 seconds.
1)协议:GCloud引入了新的运行状况检查,可以将其配置为HTTPS,SSL TCP, SSL, HTTP, HTTPS, or HTTP/2 probing。这可以帮助解决最初的问题,以防止从端口80重定向到端口443。
2)路径:最常见的问题是应用程序的“ /”路径不会返回200 OK,从而导致运行状况问题失败。这可以通过在您的健康检查中添加路径参数来防止,例如“ / index”。
3)入口HTTPS:这相对简单。在您的ingress.yaml中添加密钥或预共享证书将自动生成HTTPS负载均衡器,而不是HTTP。要遵循的更多信息是here
最后,来自Setting up HTTP Load Balancing with Ingress文档的指南。
但是,即使新的HTTPS运行状况检查似乎可行,它们仍处于beta阶段,并且在issue tracker中报告了错误。可以在here中找到gcloud-ingress-controller的文档。