ElasticSearch:仅允许本地请求

时间:2013-03-19 15:20:27

标签: elasticsearch

如何只允许本地请求弹性搜索? 所以命令如下:

curl -XGET 'http://localhost:9200/twitter/_settings'

只能在localhost上运行,请求如下:

curl -XGET 'http://mydomain.com:9200/twitter/_settings'

会被拒绝吗?

因为,从我看到的情况来看,elasticsearch默认允许它。

修改

根据http://www.elasticsearch.org/guide/reference/modules/network.html 您可以管理bind_host参数以允许主机。默认情况下,它设置为anyLocalAddress

3 个答案:

答案 0 :(得分:120)

对于v2.0.0之前的elasticsearch,如果您希望http传输和内部elasticsearch传输仅在localhost上侦听,只需将以下行添加到elasticsearch.yml文件。

network.host: "127.0.0.1"

如果您只希望http传输在localhost上侦听,请添加以下行。

http.host: "127.0.0.1"

从v2.0开始,elasticsearch默认只在localhost上侦听。因此,无需其他配置。

答案 1 :(得分:5)

如果您的最终目标是拒绝来自主机外部的任何请求,最可靠的方法是修改主机的iptables,以便拒绝对ElasticSearch使用的服务端口的任何传入请求(9200- 9300)。

如果最终目标是确保每个人都使用独占DNS引用该服务,那么最好使用可以代理HTTPd或nginx等请求的HTTP服务器实现此目的。

答案 2 :(得分:1)

我使用此参数:

http.host:“127.0.0.1”

此参数不接受外部请求的http请求。

相关问题