使用 Nginx 进行 ElasticSearch 集群身份验证
ElasticSearch Clustering authentication with Nginx
我有一个 ElasticSearch 集群,在服务器 192.168.30.141 上有一个主节点,在其他一些服务器上有 5 个数据节点。我已经在服务器192.168.30.141 上设置了一个nginx 反向代理服务器用于基本身份验证。
我的集群数据节点无法发现主节点。
我该如何解决这个问题?
数据节点是否需要安装nginx?
我的ngnix配置如下:
events {
worker_connections 1024;
}
http {
upstream elasticsearch {
server 127.0.0.1:9200;
}
server {
listen 9200;
auth_basic "Protected Elasticsearch";
auth_basic_user_file passwords;
location / {
proxy_pass http://elasticsearch;
proxy_redirect off;
}
}
}
我的主节点配置如下:
node.master: true
node.data: false
network.host: 127.0.0.1
http.port: 9200
我的数据节点配置如下:
node.master: false
node.data: true
network.host: 192.168.30.142
http.port: 9200
discovery.zen.ping.unicast.hosts: ["192.168.30.141"] // master node ip
端口 9200 用于 HTTP API,而端口 9300 用于节点通信和发现。
您的主机网络主机似乎设置为 127.0.0.1,这意味着它只会在本地侦听。如果你想让其他节点能够发现它,你需要绑定一个网络主机而不是本地主机。
确保您所有的网络主机都设置为您的本地网络,并且节点可以在端口 9300 上相互通信,这将允许您的 ES 节点找到其他节点。
我有一个 ElasticSearch 集群,在服务器 192.168.30.141 上有一个主节点,在其他一些服务器上有 5 个数据节点。我已经在服务器192.168.30.141 上设置了一个nginx 反向代理服务器用于基本身份验证。 我的集群数据节点无法发现主节点。 我该如何解决这个问题? 数据节点是否需要安装nginx?
我的ngnix配置如下:
events {
worker_connections 1024;
}
http {
upstream elasticsearch {
server 127.0.0.1:9200;
}
server {
listen 9200;
auth_basic "Protected Elasticsearch";
auth_basic_user_file passwords;
location / {
proxy_pass http://elasticsearch;
proxy_redirect off;
}
}
}
我的主节点配置如下:
node.master: true
node.data: false
network.host: 127.0.0.1
http.port: 9200
我的数据节点配置如下:
node.master: false
node.data: true
network.host: 192.168.30.142
http.port: 9200
discovery.zen.ping.unicast.hosts: ["192.168.30.141"] // master node ip
端口 9200 用于 HTTP API,而端口 9300 用于节点通信和发现。
您的主机网络主机似乎设置为 127.0.0.1,这意味着它只会在本地侦听。如果你想让其他节点能够发现它,你需要绑定一个网络主机而不是本地主机。
确保您所有的网络主机都设置为您的本地网络,并且节点可以在端口 9300 上相互通信,这将允许您的 ES 节点找到其他节点。