ElasticSearch:仅允许本地请求

smo*_*nar 40 elasticsearch

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

curl -XGET 'http://localhost:9200/twitter/_settings'
Run Code Online (Sandbox Code Playgroud)

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

curl -XGET 'http://mydomain.com:9200/twitter/_settings'
Run Code Online (Sandbox Code Playgroud)

会被拒绝吗?

因为,从我看来,elasticsearch默认允许它.

编辑:

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

imo*_*tov 120

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

network.host: "127.0.0.1"
Run Code Online (Sandbox Code Playgroud)

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

http.host: "127.0.0.1"
Run Code Online (Sandbox Code Playgroud)

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

  • 实际上,你应该结合两个答案. (5认同)

noa*_*amt 5

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

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