反向代理Elasticsearch传输端口

时间:2015-06-03 20:06:14

标签: nginx tcp elasticsearch reverse-proxy

在我的环境中,elasticsearch位于只打开标准端口(80,443等)的服务器上。所有其他港口都有防火墙。我目前在端口80上有一个反向代理,它将所有elasticsearch HTTP请求重新路由到elasticsearch的http端口。

我还想将TCP请求重新路由到elasticsearch的{​​{3}},以便我的本地客户端可以直接将elasticsearch作为客户端节点进行查询。 transport port最近允许TCP负载平衡,这是我想要利用的,但是我在使系统工作时遇到了一些麻烦。这是我的nginx.conf文件(删除了HTTP上下文以隔离问题):

worker_processes  1;

events {
    worker_connections  1024;
}

stream {
  server {
    listen      80;
    proxy_pass  127.0.0.1:9300;
  }
}

我的客户端节点设置为与mydomain.com:80通信,因此理想情况下应将所有流量路由到内部传输端口。但是,我收到以下例外情况:org.elasticsearch.client.transport.NoNodeAvailableException: None of the configured nodes are available

我的客户端节点或tcp代理还需要配置其他东西吗?

编辑1:

一些其他信息。我将Elasticsearch的传输端口从9300更改为8030,这是一个打开的端口。当我相应地将我的nginx.conf更改为proxypass到127.0.0.1:8030时,我的本地客户端节点开始工作,并得到了对我的查询的适当响应。

所以问题似乎是如果我的代理传递到已经打开的端口,它可以工作,但如果端口关闭(9300),代理传递失败。有谁知道为什么会这样,以及如何解决它?如果可能的话,我更愿意坚持使用9300端口。

0 个答案:

没有答案