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

配置项作用 #

http.host 配置项指定 HTTP 服务绑定的网络主机地址,决定 Easysearch 在哪些网络接口上监听 HTTP 连接。

是否可选 #

默认值 #

[] (空列表,会使用 network.host 的值)

配置项类型 #

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

配置格式 #

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

# 绑定到特定 IP 地址
http.host:
  - 192.168.1.10

# 绑定到多个 IP 地址
http.host:
  - 192.168.1.10
  - 10.0.0.5

# 绑定到本地回环地址
http.host:
  - _local_

# 绑定到站点本地地址
http.host:
  - _site_

工作原理 #

HTTP 服务器绑定到配置的主机地址:

┌─────────────────────────────────────────────────────────┐
│                   节点启动                                │
└─────────────────────────────────────────────────────────┘
                        │
                        ▼
                ┌───────┴────────┐
                │   读取配置       │
            http.host 配置
                │
                ▼
        ┌───────┴────────┐
        │                 │
    指定地址?          未指定
        │                 │
        ▼                 ▼
  绑定指定地址      使用 network.host
        │                 │
        ▼                 ▼
  ┌─────┴─────────────────────┴─────┐
  │                                   │
解析地址    绑定到网络接口
  │                                   │
  ▼                                   ▼
 HTTP 服务启动

优先级顺序 #

http.bind_host (最高优先级)
    │
    ├── 未设置 → http.host
    │                 │
    │                 ├── 未设置 → network.bind_host
    │                 │                 │
    │                 │                 └── 未设置 → network.host
    │                 │
    ▼                 ▼
最终绑定的地址 ←─────┘

推荐设置 #

环境推荐配置说明
开发环境["127.0.0.1"]["_local_"]只允许本地访问
生产环境具体内网 IP绑定到内网 IP
多网卡服务器所有需要的 IP明确指定每个 IP
容器环境["0.0.0.0"]绑定所有接口

使用示例 #

开发环境配置:

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

# 或使用本地标识符
http.host:
  - _local_

生产环境配置:

# 绑定到内网 IP
http.host:
  - 192.168.1.10

# 多网卡服务器
http.host:
  - 192.168.1.10
  - 10.0.0.5

容器环境配置:

# 绑定所有接口(容器内)
http.host:
  - 0.0.0.0

配置验证 #

# 查看当前配置
GET /_nodes/settings?filter_path=nodes.*.http.host

# 查看实际绑定的地址
GET /_nodes

# 测试连接
curl http://192.168.1.10:9200

安全建议 #

生产环境最佳实践:

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

# 推荐 - 绑定到具体 IP
http.host:
  - 192.168.1.10
  1. 使用内网 IP
http.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:无法从远程访问

症状:

  • 本地可以访问
  • 远程无法连接

可能原因:

  1. 绑定到了 127.0.0.1
  2. 防火墙阻止了连接
  3. 绑定的 IP 不在正确的网卡上

解决方案:

# 确保绑定到正确的网络接口
http.host:
  - 192.168.1.10

# 检查网络接口
ip addr show

# 检查防火墙
firewall-cmd --list-all

问题 2:多网卡绑定错误

症状:

  • 服务只在一个网卡上监听

解决方案:

# 明确指定所有需要监听的 IP
http.host:
  - 192.168.1.10
  - 10.0.0.5

相关配置项 #

配置项默认值说明
http.bind_host同 http.host实际绑定的地址
http.publish_host同 http.host对外发布的地址
network.host-全局网络绑定地址
http.port9200-9300HTTP 服务端口

注意事项 #

  1. 静态配置:修改绑定地址需要重启节点
  2. 安全考虑:生产环境应绑定到具体 IP,避免使用 0.0.0.0
  3. 优先级:http.bind_host 优先级高于 http.host
  4. 地址解析:主机名会在启动时解析为 IP 地址
  5. 回环地址:开发环境可以使用 local 只允许本地访问