网络配置

网络配置 #

本页介绍 easysearch.yml 中与网络绑定、端口和 HTTP 行为相关的配置项。这些都是静态设置,修改后需要重启节点生效。


核心网络参数 #

network.host #

network.host: 0.0.0.0
项目说明
参数network.host
默认值_local_(仅本机 127.0.0.1)
属性静态
说明节点绑定的主机名或 IP 地址。同时设置 network.bind_hostnetwork.publish_host。这是最常修改的网络配置

特殊值

含义
_local_回环地址(127.0.0.1),仅本机可访问
_site_内网地址(如 192.168.x.x / 10.x.x.x)
_global_公网地址
0.0.0.0绑定所有网卡接口
具体 IP绑定到指定 IP 地址

重要:一旦将 network.host 设为非 _local_ 的值,Easysearch 将进入"生产模式",执行更严格的启动检查(bootstrap checks)。

network.bind_host #

network.bind_host: 0.0.0.0
项目说明
参数network.bind_host
默认值network.host
属性静态
说明节点监听传入请求的具体地址。一般情况下只需设置 network.host,仅在需要区分绑定和通告地址时使用

network.publish_host #

network.publish_host: 192.168.1.10
项目说明
参数network.publish_host
默认值network.host
属性静态
说明节点向集群中其他节点通告的地址。在多网卡环境中,应显式设置为其他节点可达的内网 IP

何时需要单独设置

  • 服务器有多个网卡(如内网 + 外网)
  • 运行在 Docker 中需要通告宿主机 IP
  • NAT 环境下需要通告映射后的地址

示例(多网卡)

network.bind_host: 0.0.0.0          # 监听所有接口
network.publish_host: 192.168.1.10  # 通告内网地址

HTTP 端口 #

http.port #

http.port: 9200
项目说明
参数http.port
默认值9200-9300
属性静态
说明HTTP REST API 监听端口。客户端通过此端口与 Easysearch 交互。支持单个值或端口范围

端口范围行为:指定范围时(如 9200-9300),节点将绑定到该范围内的第一个可用端口。生产环境建议设置为固定端口。

transport.port #

transport.port: 9300
项目说明
参数transport.port
默认值9300-9400
属性静态
说明节点间内部通信(Transport 层)端口。用于集群内节点间的数据传输、分片恢复、集群状态同步等。客户端不会直接连接此端口

注意:在所有具有 master 资格的节点上,请将 transport.port 设置为单个固定值,避免因端口漂移导致发现失败。


HTTP 调优参数 #

请求大小限制 #

参数默认值说明
http.max_content_length100mbHTTP 请求体最大大小。超过此大小的请求将被拒绝。如果有大量 bulk 写入需求,可适当调大
http.max_header_size8kbHTTP 请求头(header)最大大小
http.max_initial_line_length4kbHTTP 初始行(URL)最大长度。如果使用超长查询字符串,可能需要调大

示例(大 bulk 写入场景)

http.max_content_length: 200mb

压缩 #

参数默认值说明
http.compressiontrue是否启用 HTTP 响应压缩(gzip)。启用可以减少网络传输量,但会增加少量 CPU 开销

CORS(跨域资源共享) #

参数默认值说明
http.cors.enabledfalse是否启用 CORS。仅在浏览器前端直接访问 Easysearch API 时需要开启
http.cors.allow-origin允许的 CORS 来源。支持正则表达式。"*" 表示允许所有来源(不推荐用于生产环境)
http.cors.allow-methodsOPTIONS, HEAD, GET, POST, PUT, DELETE允许的 HTTP 方法
http.cors.allow-headersX-Requested-With, Content-Type, Content-Length允许的自定义请求头
http.cors.allow-credentialsfalse是否允许发送凭据(cookies)
http.cors.max-age1728000(20 天)预检请求(preflight)的缓存时间(秒)

示例(允许特定域名)

http.cors.enabled: true
http.cors.allow-origin: "/https?://localhost(:[0-9]+)?/"

示例(允许所有来源,仅用于开发)

http.cors.enabled: true
http.cors.allow-origin: "*"
http.cors.allow-headers: "X-Requested-With, Content-Type, Content-Length, Authorization"

网络参数速查表 #

参数默认值属性说明生产环境建议
network.host_local_静态绑定地址设为具体内网 IP
network.bind_hostnetwork.host静态监听地址多网卡时配合使用
network.publish_hostnetwork.host静态通告地址多网卡/Docker 需显式设置
http.port9200-9300静态HTTP 端口设为固定值 9200
transport.port9300-9400静态节点通信端口设为固定值 9300
http.max_content_length100mb静态请求体上限大 bulk 场景可调至 200mb
http.compressiontrue静态HTTP 压缩保持默认
http.cors.enabledfalse静态CORS 开关按需开启

配置示例 #

生产集群(单网卡) #

network.host: 192.168.1.10
http.port: 9200
transport.port: 9300

生产集群(多网卡 / Docker) #

network.bind_host: 0.0.0.0
network.publish_host: 192.168.1.10
http.port: 9200
transport.port: 9300

开发环境(本机访问) #

network.host: 0.0.0.0
http.port: 9200
transport.port: 9300
http.cors.enabled: true
http.cors.allow-origin: "*"

延伸阅读 #