无法从外部访问嵌入式弹性搜索

时间:2017-06-27 01:12:14

标签: elasticsearch spring-boot spring-data-elasticsearch

我有带有嵌入式弹性搜索的Spring Boot应用程序。我可以在localhost:9200上访问它,但它不响应真正的IP xx.xxx.x.xx:9200。

端口是开放的,问题是它只是监听本地接口。

netstat -vanp tcp | grep 9200
tcp4       0      0  127.0.0.1.9200         *.*                    LISTEN      131072 131072  31425      0
tcp6       0      0  ::1.9200               *.*                    LISTEN      131072 131072  31425      0
tcp6       0      0  fe80::1%lo0.9200       *.*                    LISTEN      131072 131072  31425      0

如何强制它全部倾听,就像我对web 8080一样

netstat -vanp tcp | grep 8080
tcp46      0      0  *.8080                 *.*                    LISTEN      131072 131072  23002      0

我正在使用:

  • spring-boot-starter-parent 1.4.1.RELEASE
  • spring-boot-starter-data-elasticsearch 1.4.1.RELEASE
  • elasticsearch版本2.4.0

这是我的application-dev.yml

的一部分
data:
    elasticsearch:
        cluster-name:
        cluster-nodes:
        properties:
            path:
              logs: target/elasticsearch/log
              data: target/elasticsearch/data
            http:
              enabled: true

谢谢

1 个答案:

答案 0 :(得分:2)

您需要将嵌入式Elasticsearch绑定到所有主机ips(或至少绑定到机器的真实IP),它在我看来您绑定到localhost,因此在配置elasticsearch时需要此条目:< / p>

Settings.Builder nodeSettings = nodeBuilder().settings();
...
nodeSettings.put("network.host", "0.0.0.0");

这将绑定您的elasticsearch以绑定到您的主机IP地址。