集群转发配置
配置简介
cluster_conf.data为集群转发配置文件。
配置描述
基础配置
| 配置项 | 描述 |
|---|---|
| Version | String 配置文件版本 |
| Config | Object 各集群的转发配置参数 |
| Config[k] | String 集群名称 |
| Config[v] | Object 集群转发配置参数 |
集群转发配置
注:以下配置项均位于名字空间Config[v], 在配置项名称中已省略
后端基础配置
| 配置项 | 描述 |
|---|---|
| BackendConf.Protocol | String 后端服务的协议,当前支持http和fcgi, 默认值http |
| BackendConf.TimeoutConnSrv | Integer 连接后端的超时时间,单位是毫秒 默认值2 |
| BackendConf.TimeoutResponseHeader | Integer 从后端读响应头的超时时间,单位是毫秒 默认值60 |
| BackendConf.MaxIdleConnsPerHost | Integer BFE实例与每个后端的最大空闲长连接数 默认值2 |
| BackendConf.RetryLevel | Integer 请求重试级别。0:连接后端失败时,进行重试;1:连接后端失败、转发GET请求失败时均进行重试 默认值0 |
| BackendConf.FCGIConf | Object FastCGI 协议的配置 |
| BackendConf.FCGIConf.Root | String 网站的Root文件夹位置 |
| BackendConf.FCGIConf.EnvVars | Map[string]string 拓展的环境变量 |
健康检查配置
| 配置项 | 描述 |
|---|---|
| CheckConf.Schem | String 健康检查协议,支持HTTP和TCP 默认值 HTTP |
| CheckConf.Uri | String 健康检查请求URI (仅HTTP) 默认值 /health_check |
| CheckConf.Host | String 健康检查请求HOST (仅HTTP) 默认值 “” |
| CheckConf.StatusCode | Integer 期待返回的响应状态码 (仅HTTP) 默认值 0,代表任意状态码 |
| CheckConf.FailNum | Integer 健康检查启动阈值(转发请求连续失败FailNum次后,将后端实例置为不可用状态,并启动健康检查) 默认值5 |
| CheckConf.SuccNum | Integer 健康检查成功阈值(健康检查连续成功SuccNum次后,将后端实例置为可用状态) 默认值1 |
| CheckConf.CheckTimeout | Integer 健康检查的超时时间,单位是毫秒 默认值0(无超时) |
| CheckConf.CheckInterval | Integer 健康检查的间隔时间,单位是毫秒 默认值1 |
GSLB基础配置
| 配置项 | 描述 |
|---|---|
| GslbBasic.CrossRetry | Integer 跨子集群最大重试次数 默认值0 |
| GslbBasic.RetryMax | Integer 子集群内最大重试次数 默认值2 |
| GslbBasic.BalanceMode | String 负载均衡模式(WRR: 加权轮询; WLC: 加权最小连接数) 默认值WRR |
| GslbBasic.HashConf | Object 会话保持的HASH策略配置 |
| GslbBasic.HashConf.HashStrategy | Integer 会话保持的哈希策(ClientIdOnly, ClientIpOnly, ClientIdPreferred) 默认值ClientIpOnly |
| GslbBasic.HashConf.HashHeader | String 会话保持的hash请求头 |
| GslbBasic.HashConf.SessionSticky | Boolean 是否开启会话保持(开启后,可以保证来源于同一个用户的请求可以发送到同一个后端) 默认值False |
集群基础配置
| 配置项 | 描述 |
|---|---|
| ClusterBasic.TimeoutReadClient | Integer 读用户请求wody的超时时间,单位为毫秒 默认值30 |
| ClusterBasic.TimeoutWriteClient | Integer 写响应的超时时间,单位为毫秒 默认值60 |
| ClusterBasic.TimeoutReadClientAgain | Integer 连接闲置超时时间,单位为毫秒 默认值60 |
配置示例
{"Version": "20190101000000","Config": {"cluster_example": {"BackendConf": {"TimeoutConnSrv": 2000,"TimeoutResponseHeader": 50000,"MaxIdleConnsPerHost": 0,"RetryLevel": 0},"CheckConf": {"Schem": "http","Uri": "/healthcheck","Host": "example.org","StatusCode": 200,"FailNum": 10,"CheckInterval": 1000},"GslbBasic": {"CrossRetry": 0,"RetryMax": 2,"HashConf": {"HashStrategy": 0,"HashHeader": "Cookie:UID","SessionSticky": false}},"ClusterBasic": {"TimeoutReadClient": 30000,"TimeoutWriteClient": 60000,"TimeoutReadClientAgain": 30000,}},"fcgi_cluster_example": {"BackendConf": {"Protocol": "fcgi","TimeoutConnSrv": 2000,"TimeoutResponseHeader": 50000,"MaxIdleConnsPerHost": 0,"RetryLevel": 0,"FCGIConf": {"Root": "/home/work","EnvVars": {"VarKey": "VarVal"}}},"CheckConf": {"Schem": "http","Uri": "/healthcheck","Host": "example.org","StatusCode": 200,"FailNum": 10,"CheckInterval": 1000},"GslbBasic": {"CrossRetry": 0,"RetryMax": 2,"HashConf": {"HashStrategy": 0,"HashHeader": "Cookie:UID","SessionSticky": false}},"ClusterBasic": {"TimeoutReadClient": 30000,"TimeoutWriteClient": 60000,"TimeoutReadClientAgain": 30000,"ReqWriteBufferSize": 512,"ReqFlushInterval": 0,"ResFlushInterval": -1,"CancelOnClientClose": false}}}}