我为我的节点应用程序使用了VM标度集。我的应用程序有一个可通过www.mydomain.com/api/healthcheck
访问的公开操作,并只打印一些json。 当我配置我的健康探测器使用TCP
协议时,一切正常,并且我的api还给我预期的json(和状态200)。 但是,当我现在切换我的健康探针使用HTTP
和路径= /api/healthcheck
,我的网站无法访问了(ERR_CONNECTION_TIMED_OUT
...我想loadbalancer拿出所有实例,因为健康调查告诉他,每个实例是不健康的)我试过(用于测试)配置我的LoadBalancer来将端口80路由到后端端口8080(我的节点应用程序在每台机器上运行,因此我可以避免使用nginx代理)。但我得到了同样的行为。健康探针将实例标记为不健康,但不是
我不知道为什么我的自定义健康检查不起作用。希望你能帮助。
编辑: 为了进行测试,我做了以下内容:
- 运行在每台虚拟机,这只是输出 “Hello World” 3000端口其他的NodeJS应用 (不nginx的代理!)
- 创建端口3000 LB规则,还可以配置我的NSG允许:所有
- 在3000年初,我的健康探头被配置为使用
tcp
- RESU LT:
mydoamin.com:3000/hello
可用(打印你好并返回200) - 现在配置我的健康探头使用
http
-protocol,港口3000
和位置/hello
。 - 结果:我的整个Web应用程序不可用了
即使使用端口80,HTTP运行状况检查是否失败?或者仅在使用端口8080时?另外,您的网站是否有可能从http端点重定向到相应的https端点? –
它也在端口80上失败。是的,有一个重定向到https,但我删除了这个测试用例的规则,但我又得到了相同的行为。 – Munchkin