【发布时间】:2016-07-22 20:10:44
【问题描述】:
我正在尝试使用 Google Cloud 和前端的负载均衡器创建一个自动缩放的 solr 实例组。我遇到的错误是无论我尝试什么,我创建的健康检查都不会通过。健康检查设置到端口 80(使用 nginx 将端口 80 转发到 8983 的实例),路径为 /solr/ /admin/ping。
我可以从实例外部和实例内部(使用本地主机)卷曲这条路径,我得到:
curl --head localhost/solr/product/admin/ping
HTTP/1.1 200 OK
Server: nginx/1.6.2
Date: Fri, 22 Jul 2016 19:41:26 GMT
Content-Type: application/xml; charset=UTF-8
Content-Length: 0
Connection: keep-alive
谁能解释为什么健康检查没有通过?健康检查的详细信息是:
checkIntervalSec: 20
creationTimestamp: '2016-07-21T11:54:44.196-07:00'
description: ''
healthyThreshold: 1
host: ''
id: < id >
kind: compute#httpHealthCheck
name: < name >
port: 80
requestPath: /solr/product/admin/ping
selfLink: < path to healthcheck >
timeoutSec: 20
unhealthyThreshold: 3
我唯一能想到的是在Health Check 页面中,它说“要被视为成功的健康检查,实例必须返回带有代码 200 的有效 HTTP 响应并在 timeoutSec 时间内正常关闭连接。”我知道 Solr 给出的代码是 200,但是通过 curl 命令,它还保持连接处于活动状态而不是关闭它。那可能是错误吗?如果是这样,我该如何解决这个问题?
如果我将运行状况检查指向正在运行 solr 的端口 8983,而不是通过 nginx 路由它,则连接不再使用 keep-alive,但它也会将该实例报告为不健康。
任何帮助将不胜感激,
【问题讨论】:
标签: curl nginx solr google-compute-engine google-cloud-platform