无法连接到我的代理elasticsearch节点

宝石

从Go客户端连接到es节点时出现问题。

我在设置基本身份验证的nginx代理后面有elasticsearch。除内存外,所有设置均为ES中的默认设置。

通过浏览器,它可以很好地工作,但是不能通过此客户端:https : //github.com/olivere/elastic

我阅读了文档,并说它使用/ _nodes / http api进行连接。现在这可能是我做错事情的地方,因为该api的响应如下所示:

{
  "_nodes" : {
    "total" : 1,
    "successful" : 1,
    "failed" : 0
  },
  "cluster_name" : "elasticsearch",
  "nodes" : {
    "u6TqFjAvRBa3_4FndfKh4w" : {
      "name" : "u6TqFjA",
      "transport_address" : "127.0.0.1:9300",
      "host" : "127.0.0.1",
      "ip" : "127.0.0.1",
      "version" : "5.6.2",
      "build_hash" : "57e20f3",
      "roles" : [
        "master",
        "data",
        "ingest"
      ],
      "http" : {
        "bound_address" : [
          "[::1]:9200",
          "127.0.0.1:9200"
        ],
        "publish_address" : "127.0.0.1:9200",
        "max_content_length_in_bytes" : 104857600
      }
    }
  }
}

我猜我必须将IP设置为我的实际IP /域(我的域就像es01.somedomain.com)

那么,如何正确配置elastisearch,以便Go客户端可以连接?

我的Nginx配置文件看起来与此类似:https : //www.elastic.co/blog/playing-http-tricks-nginx

编辑:我通过在客户端的选项中设置elastic.SetSniff(false)找到了一个临时解决方案,但是我认为这意味着我无法水平缩放ES。因此仍在寻找替代方案。

彼得:

您正在寻找HTTP选项(尤其是http.publish_host和)http.publish_port,应将其设置为代理ES节点的Nginx服务器的公共可访问地址和端口。

请注意,随着Elasticsearch在127.0.0.1:9300上侦听传输,您将无法与其他主机上的节点形成集群。可以使用传输选项类似地配置传输

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章