我有一台 Elasticsearch 客户端服务器,并且能够使用 9200 端口连接该服务器,例如 http://myserver:9200 。
到目前为止,还没有问题,但是我感到困惑的是,为什么博客说要在 Elasticsearch 客户端的前端使用nginx。是因为性能/安全性改进还是其他原因?
最佳答案
Nginx可以放在ES的前面,以实现安全性或负载均衡
1)是的,您可以使用nginx作为Elasticsearch服务器前的代理来实现安全性,因为Elasticsearch并不是内置的。 Nginx的安全性实现并不多,它提供了身份验证,授权搜索请求的方法。
请参阅我之前的答案以获取更多详细说明。
Restrict user using shield
shield for blocking operations
但是,如果您正在寻找安全性,那么我建议改用X-Pack随附的防护罩,以进行安全性的高级配置。
shield official documentation
Custom roles using shield
使用Shield,您可以为 flex 集群定义更精细的安全性配置。当前,shield支持基本身份验证,基于角色的访问控制,document level security, LDAP集成,ssl,IP过滤
2)在某些地方,人们使用nginx作为负载均衡器来处理传入的集群请求。但是在这里,您还可以通过将集群中的节点之一与专用主节点和数据节点一起设置为客户端节点而无需nginx。
客户端节点可帮助从您的数据节点分配索引和搜索流量。
使用客户端节点,您可以为群集构建一个更好的界面,以进行监视,批量索引,搜索流量分配。
Here是客户端节点上的一个很好的答案。
谢谢
关于nginx - 具有Nginx的Elasticsearch Client与不具有Nginx的Elasticsearch Client,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41974002/