配置elasticsearch时遇到了绑定问题 听取界面。 不知何故,文档没有提供如何设置多个网络接口(network def和bind def)
我的目的是将network.bind_host
设置为_eth1:ipv4_
和_local_
即使尝试仅将bind_host
设置为_local_
,
弹性搜索端口9200仍然只能通过eth1访问(当然我已经重新启动了服务器)
我已经通过设置netcat服务器测试了防火墙配置,这个服务器完全适用于该端口
network.publish_host
吗?
network.bind_host: _eth1:ipv4_
network.publish_host: _eth1:ipv4_
network.host: _eth1:ipv4_
network.bind_host: _local_
network.publish_host: _eth1:ipv4_
network.host: _local_
PS: afaik,publish_host是服务器间通信的网站
答案 0 :(得分:5)
使用YAML list获取所需的属性:
network.bind_host:
- _local_
- _en0:ipv4_
如果我正确理解this answer,publish_host
应为_eth1:ipv4_
。您的publish_host
必须是弹性搜索通过bind_host
属性绑定的接口之一。
以上链接的答案实际上很棒,所以我必须在这里引用它:
" bind_host" 是Elasticsearch节点在套接字中使用的主机 启动网络时绑定调用。由于套接字编程模型, 你可以"绑定"到一个地址。通过引用"地址",套接字 允许访问一个或所有底层网络设备。有 具有预定义语义的几个地址,例如, 0.0.0.0是保留的 for"绑定到所有网络设备"。所以" bind_host"地址没有 必然反映一个唯一的地址。
" publish_host" 必须是唯一的唯一网络地址。它用于 连接其他节点的调用,而不是节点的套接字绑定调用 本身。通过使用" publish_host"所有节点和客户端都可以确定它们 可以连接到此节点。将此唯一地址声明为 外部可以解释为"发布",所以它被称为 " publish_host"
你不能设置" bind_host"和" publish_host"任意值, 值必须遵循底层套接字模型。