集群转发配置

配置简介

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.MaxConnsPerHost Integer
BFE实例与每个后端的最大长连接数,0代表无限制
默认值0
BackendConf.RetryLevel Integer
请求重试级别。0:连接后端失败时,进行重试;1:连接后端失败、转发GET请求失败时均进行重试
默认值0
BackendConf.OutlierDetectionHttpCode String
后端响应状态码检查,””代表不开启检查,”500”表示后端返回500则认为后端失败,失败计数加一
状态码支持”dxx”格式,例如”5xx”;多个状态码之间使用’|’连接
默认值””,不开启后端响应状态码错误检查
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
读用户请求body的超时时间,单位为毫秒
默认值30
ClusterBasic.TimeoutWriteClient Integer
写响应的超时时间,单位为毫秒
默认值60
ClusterBasic.TimeoutReadClientAgain Integer
连接闲置超时时间,单位为毫秒
默认值60

配置示例

  1. {
  2. "Version": "20190101000000",
  3. "Config": {
  4. "cluster_example": {
  5. "BackendConf": {
  6. "TimeoutConnSrv": 2000,
  7. "TimeoutResponseHeader": 50000,
  8. "MaxIdleConnsPerHost": 0,
  9. "RetryLevel": 0,
  10. "OutlierDetectionHttpCode": "5xx|403"
  11. },
  12. "CheckConf": {
  13. "Schem": "http",
  14. "Uri": "/healthcheck",
  15. "Host": "example.org",
  16. "StatusCode": 200,
  17. "FailNum": 10,
  18. "CheckInterval": 1000
  19. },
  20. "GslbBasic": {
  21. "CrossRetry": 0,
  22. "RetryMax": 2,
  23. "HashConf": {
  24. "HashStrategy": 0,
  25. "HashHeader": "Cookie:UID",
  26. "SessionSticky": false
  27. }
  28. },
  29. "ClusterBasic": {
  30. "TimeoutReadClient": 30000,
  31. "TimeoutWriteClient": 60000,
  32. "TimeoutReadClientAgain": 30000,
  33. }
  34. },
  35. "fcgi_cluster_example": {
  36. "BackendConf": {
  37. "Protocol": "fcgi",
  38. "TimeoutConnSrv": 2000,
  39. "TimeoutResponseHeader": 50000,
  40. "MaxIdleConnsPerHost": 0,
  41. "MaxConnsPerHost": 0,
  42. "RetryLevel": 0,
  43. "FCGIConf": {
  44. "Root": "/home/work",
  45. "EnvVars": {
  46. "VarKey": "VarVal"
  47. }
  48. }
  49. },
  50. "CheckConf": {
  51. "Schem": "http",
  52. "Uri": "/healthcheck",
  53. "Host": "example.org",
  54. "StatusCode": 200,
  55. "FailNum": 10,
  56. "CheckInterval": 1000
  57. },
  58. "GslbBasic": {
  59. "CrossRetry": 0,
  60. "RetryMax": 2,
  61. "HashConf": {
  62. "HashStrategy": 0,
  63. "HashHeader": "Cookie:UID",
  64. "SessionSticky": false
  65. }
  66. },
  67. "ClusterBasic": {
  68. "TimeoutReadClient": 30000,
  69. "TimeoutWriteClient": 60000,
  70. "TimeoutReadClientAgain": 30000,
  71. "ReqWriteBufferSize": 512,
  72. "ReqFlushInterval": 0,
  73. "ResFlushInterval": -1,
  74. "CancelOnClientClose": false
  75. }
  76. }
  77. }
  78. }