Google Cloudとフロントエンドのロードバランサを使用して、solrインスタンスの自動拡張グループを作成しようとしています。私が経験しているエラーは、私が作成したヘルスチェックが、何を試しても決して通過しないということです。ヘルスチェックはポート80(ポート80を8983に転送するためにnginxを使用するインスタンス)に移動するように設定され、パスは/ solr/<コア名>/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コマンドから、接続を閉じずに接続を維持しています。それはエラーでしょうか?もしそうなら、どうすればこの問題を回避できますか?
nginx経由でルーティングするのではなく、solrが実行されているポート8983にヘルスチェックを指示した場合、接続ではkeep-alive
が使用されなくなりますが、そのインスタンスも正常でないと報告されます。
すべてのヘルプははるかに高く評価されるだろう、