私はHaystackを使用してelasticsearchのインストールに接続して対話します。ElasticsearchはメインWebサーバーとは別のボックスにインストールされます。
私は、nginxを使用してelasticsearchボックスでHTTP認証を設定しました。これは、elasticsearchへの不正アクセスを止めるためです。
Haystackの設定は次のようになります。
HAYSTACK_CONNECTIONS = {
"default": {
"ENGINE": "haystack.backends.elasticsearch_backend.ElasticsearchSearchEngine",
"URL": "http://USERNAME:PASSWORD@DOMAIN:PORT/",
"INDEX_NAME": "haystack",
},
}
この設定で私は接続エラーを取得します:
elasticsearch.exceptions.ConnectionError: ConnectionError(("Connection aborted.",
gaierror(-2, "Name or service not known"))) caused by: ProtocolError(("Connection
aborted.", gaierror(-2, "Name or service not known")))
HTTP認証を無効にしてURLを更新すると http://DOMAIN:PORT/
それは問題なく接続します。
Haystack(またはelasticsearch-py(http://www.elasticsearch.org/guide/en/elasticsearch/client/python-api/current/)URLでHTTP認証を使用できないのですか?これはSolrの問題です - Solr認証(Django Haystackを使用)
回答:
回答№1は5同じ問題の他の人には、kwargsをconfigに追加してください:
"KWARGS": {
"port": parsed.port,
"http_auth": (parsed.username, parsed.password),
}
見る: https://github.com/toastdriven/django-haystack/issues/1046