📣 极限科技诚招搜索运维工程师(Elasticsearch/Easysearch)- 全职/北京 👉 : 立即申请加入

配置项作用 #

http.bind_host 配置项指定 HTTP 服务实际绑定的网络接口 IP 地址,决定在哪里监听 HTTP 连接。

是否可选 #

默认值 #

[] (空列表,依次回退到 http.host、network.bind_host、network.host)

配置项类型 #

静态配置 - 需要重启节点才能生效

配置格式 #

# 绑定到特定 IP
http.bind_host:
  - 192.168.1.100

# 绑定到多个 IP
http.bind_host:
  - 192.168.1.100
  - 10.0.0.50

# 绑定到所有接口(生产环境不推荐)
http.bind_host:
  - 0.0.0.0

# 使用主机名(启动时解析)
http.bind_host:
  - server1.example.com

与 http.host 的关系 #

┌─────────────────────────────────────────────────────────┐
│                   地址解析优先级                           │
└─────────────────────────────────────────────────────────┘

http.bind_host
    │
    ├── 已设置 → 使用 http.bind_host
    │
    └── 未设置 ↓
         │
         ▼
    http.host
         │
         ├── 已设置 → 使用 http.host
         │
         └── 未设置 ↓
              │
              ▼
         network.bind_host
              │
              ├── 已设置 → 使用 network.bind_host
              │
              └── 未设置 ↓
                   │
                   ▼
              network.host

推荐设置 #

场景推荐值说明
生产环境具体内网 IP明确绑定地址
多网卡需要的 IP 列表指定每个网卡 IP
容器环境0.0.0.0容器内绑定所有接口
开发环境127.0.0.1只允许本地访问
NAT 环境内网 IP绑定内网接口

使用示例 #

多网卡服务器:

# 只绑定到特定网卡
http.bind_host:
  - 192.168.1.100

容器环境:

# 绑定到所有接口
http.bind_host:
  - 0.0.0.0

开发环境:

# 只允许本地访问
http.bind_host:
  - 127.0.0.1

与 http.publish_host 配合使用 #

客户端请求 → [http.bind_host] → 节点处理 → [http.publish_host] → 客户端连接
     │                              │                      │
     ▼                              ▼                      ▼
 绑定地址                    内部地址              发布地址
 (实际监听)                  (处理逻辑)            (对外暴露)

示例配置:

# 绑定到内网 IP
http.bind_host:
  - 192.168.1.100

# 发布公网 IP
http.publish_host:
  - 203.0.113.10

配置验证 #

# 查看绑定地址
GET /_nodes?filter_path=nodes.*.http.bind_address

# 查看监听端口
netstat -tuln | grep 9200

常见问题 #

问题 1:无法从外部访问

原因:

  • 绑定到了 127.0.0.1
  • 绑定的 IP 不在正确的网卡上

解决方案:

http.bind_host:
  - 192.168.1.100

问题 2:多网卡绑定错误

解决方案:

# 明确指定所有需要的 IP
http.bind_host:
  - 192.168.1.100
  - 10.0.0.50

安全建议 #

生产环境最佳实践:

  1. 避免绑定所有接口
# 不推荐
http.bind_host:
  - 0.0.0.0

# 推荐
http.bind_host:
  - 192.168.1.100
  1. 使用内网 IP
http.bind_host:
  - 10.0.0.10
  1. 配合防火墙
# 限制访问来源
firewall-cmd --permanent --add-rich-rule='
  rule family="ipv4" source address="10.0.0.0/8"
  port protocol="tcp" port="9200" accept
'

注意事项 #

  1. 静态配置:修改绑定地址需要重启节点
  2. 优先级高:http.bind_host 优先级高于 http.host
  3. 地址解析:主机名在启动时解析为 IP
  4. 安全考虑:生产环境应绑定具体 IP
  5. 回退机制:未设置时依次回退到其他配置

相关配置项 #

配置项默认值说明
http.host[]HTTP 主机地址
http.publish_host[]对外发布地址
network.bind_host[]全局绑定地址
network.host[]全局网络地址

完整配置示例 #

# easysearch.yml

# 生产环境配置
http.bind_host:
  - 192.168.1.100
http.publish_host:
  - search.example.com
http.port: 9200