我正嘗試使用前端的負載平衡器使用Google Cloud創建一個自動縮放的solr實例組。我遇到的錯誤是我創建的健康檢查不會通過,無論我嘗試什麼。運行狀況檢查設置爲端口80(使用nginx將端口80轉發到8983的實例),路徑爲/ solr/< core_name>/admin/ping。使用Google Cloud上的Solr進行負載平衡
我可以從實例外部和實例(使用本地主機)內捲曲這條道路,我也得到:
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頁的唯一的事情,它說:「對於被認爲是成功的健康檢查,該實例必須返回代碼有效的HTTP響應200並在timeoutSec期間內正常關閉連接。「我知道Solr給出的代碼爲200,但是從curl命令中,它也保持連接活動而不是關閉它。那可能是錯誤嗎?如果是這樣,我怎麼能解決這個問題?
如果我將運行狀況檢查指向solr運行的端口8983而不是通過nginx進行路由,則連接不再使用keep-alive
,但它也會將實例報告爲不健康。
任何幫助將不勝感激,