无法从NodeJs应用程序访问远程Elasticsearch实例

时间:2019-01-28 07:01:21

标签: node.js elasticsearch

我在AWS的Ubuntu 16.04上安装了elasticsearch 6.5实例。我还有一个NodeJS应用程序,需要与它进行远程通信。 如果在本地安装ElasticSearch,但我的NodeJS应用程序运行良好,但无法从远程实例获取响应。我已经修改了elasticsearch.yml文件,并将network.host设置更改为network.host: 0.0.0.0。 我可以使用Postman查询远程Elasticsearch实例,但是我的NodeJS应用程序无法连接。 我可以在我的NodeJS应用程序日志中看到,它正在尝试通过Elasticsearch主机的内部IP连接到ElasticSearch,而在NodeJS配置中,我指定了公共IP。 有关导致配置错误的任何线索都将有所帮助。

1 个答案:

答案 0 :(得分:0)

您的NodeJS应用程序最有可能尝试使用elasticsearch发布的地址来查询elasticsearch。设置network.host时,elasticsearch会自动将publish.host设置为相同的值。我不确定当您要求Elasticsearch发布0.0.0.0时会做什么,因为elasticsearch只能发布一个地址(相对于侦听,它可以在多个地址上执行)。

尝试将publish.host设置为NodeJS应用程序可以访问的地址。请记住,其他elasticsearch节点也需要能够连接到该地址。

相关文档在这里:https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-network.html