Jac*_*ack 2 django http-authentication django-haystack elasticsearch pyelasticsearch
我正在使用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',
},
}
Run Code Online (Sandbox Code Playgroud)
有了这个设置,我得到一个连接错误:
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')))
Run Code Online (Sandbox Code Playgroud)
如果我关闭HTTP身份验证并相应地更新URL http://DOMAIN:PORT/连接没有问题.
可能是Haystack(或elasticsearch-py(http://www.elasticsearch.org/guide/en/elasticsearch/client/python-api/current/)不允许在URL中使用HTTP身份验证吗?I请注意这是Solr - Solr身份验证的问题(使用Django Haystack)
对于具有相同问题的其他人,请将kwargs添加到config:
'KWARGS': {
'port': parsed.port,
'http_auth': (parsed.username, parsed.password),
}
Run Code Online (Sandbox Code Playgroud)
请参阅:https://github.com/toastdriven/django-haystack/issues/1046
| 归档时间: |
|
| 查看次数: |
961 次 |
| 最近记录: |