如何只允许本地请求弹性搜索? 所以命令如下:
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
答案 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请求。