问题描述
我在EC2机器上设置了6.5+的弹性搜索版本,当我卷曲localhost:9200 / _cluster / health?pretty时,它返回了我的值,但是当我使用ec2instance public ip在google chrome上执行时没有得到我的数据,我得到了,因为我没有绑定我的网络主机以在0.0.0.0上运行。而且我不想这样做,因为它将暴露我的数据。现在我的spring boot应用程序正在beantalk实例上运行,如果我尝试从那里将其连接到弹性搜索实例,它仍然不起作用。所以我把beantalk公用ip放在网络主机上,仍然不能正常工作,仍然不是可行的解决方案,因为beantalk ip可以基于自动缩放进行更改。那么解决此问题的正确方法是什么
解决方法
您可以在Elasticsearch实例前面使用反向代理,以仅允许来自公共IP的特定请求(/ _cluster / health?pretty),并且仅允许使用虚拟服务器功能来自另一个特定IP的所有请求。或者,您也可以实施“基本身份验证”以允许所有请求,从而将Elasticsearch实例公开在公共IP上。请记住,您的反向代理与弹性搜索实例位于同一AWS区域中,并在反向代理中使用私有IP / DNS与Elasticsearch实例通信。 不要忘记检查增加的延迟以及在此过程中可能利用的进一步优化,例如设置保持活动的连接和请求限制等。