elasticsearch Django Haystack使用http身份验证时出现连接错误

vcirk6k6  于 5个月前  发布在  ElasticSearch
关注(0)|答案(1)|浏览(68)

我正在使用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 authentication (using Django Haystack)的问题

z18hc3ub

z18hc3ub1#

对于其他有同样问题的人,请将kwargs添加到配置中:

'KWARGS': {
    'port': parsed.port,
    'http_auth': (parsed.username, parsed.password),
}

字符串
参见:https://github.com/django-haystack/django-haystack/issues/1046

相关问题