ElasticSearch:只允许本地请求
如何只允许本地请求弹性search? 所以命令如:
curl -XGET 'http://localhost:9200/twitter/_settings'
只能在本地主机上运行,请求如下:
curl -XGET 'http://mydomain.com:9200/twitter/_settings'
会被拒绝?
因为从我所看到的,elasticsearch默认是允许的。
编辑:
根据http://www.elasticsearch.org/guide/reference/modules/network.html你可以pipe理bind_host
参数来允许主机。 默认情况下,它被设置为anyLocalAddress
对于v2.0.0之前的elasticsearch,如果您希望http传输和内部elasticsearch传输仅在本地主机上侦听,只需elasticsearch.yml
下行添加到elasticsearch.yml
文件。
network.host: "127.0.0.1"
如果您只希望http传输在本地主机上侦听,请改为添加以下行。
http.host: "127.0.0.1"
从v2.0开始,elasticsearch默认只在本地主机上侦听。 所以,不需要额外的configuration。
如果最终目标是拒绝来自主机之外的任何请求,最可靠的方法是修改主机的iptables,以便拒绝对ElasticSearch(9200-9300)使用的服务端口的任何传入请求。
如果最终目标是确保每个人都使用独占DNS来引用服务,那么最好使用能够代理HTTPd或nginx请求的HTTP服务器来实现这一目标。
我使用这个参数:
http.host:“127.0.0.1”
这个参数不接受外部请求的http请求。