转发策略配置
本章介绍通过IaC进行转发策略配置的管理,包括监听下的转发策略、健康检查、后端服务器及动态路由管理。对应的资源类型为WiseCloud::LoadBalancer::SLB::RouteRule。
参数名 |
类型 |
是否必选 |
说明 |
---|---|---|---|
listenerGroupName |
String |
是 |
SLB监听名称,一个转发策略实例只能绑定一个监听实例。 |
targetGroups |
List<TargetGroupConfigBean> |
否 |
后端集群。 |
routes |
List<RouteRule> |
否 |
转发策略(Locations)。 |
dynamicRoutes |
List<DynamicRouteRuleBean> |
否 |
动态路由。 |
参数名 |
类型 |
是否必选 |
说明 |
---|---|---|---|
name |
String |
是 |
后端集群名,不超过150位,不包含特殊字符。 |
protocol |
String |
是 |
协议,取值为:HTTP或HTTPS。 |
loadBalancer |
是 |
后端集群负载均衡类型。 |
|
healthCheck |
否 |
健康检查。 |
参数名 |
类型 |
是否必选 |
说明 |
---|---|---|---|
strategy |
String |
是 |
负载均衡算法,支持"roundRobin"、"protocolParam"、"IP_HASH"、"least_conn"。 |
slowStartDelay |
int |
否 |
预热时延,不超过30。 |
slowStartPeriod |
int |
否 |
预热周期,不超过30。 |
slowStartFactor |
int |
否 |
预热因子,默认为10,不小于1,不超过100。 |
hashParam |
String |
否 |
哈希转发字段名,Strategy类型为protocolParam时必填 长度不超过50,由字母加数字,下划线,横杠,点组成。 |
customParam |
String |
否 |
自定义参数,不包含by_lua。 |
默认取第一个后端集群的健康检查配置,如果为空,使用默认值。
参数名 |
类型 |
是否必选 |
说明 |
---|---|---|---|
switchStatus |
String |
否 |
是否开启健康检查,取值为on或off,不填或者其他字符均为off。 |
protocol |
String |
否 |
协议,默认HTTP,不可修改。 |
path |
String |
否 |
检查路径,长度不超过500,由字母、数字、横杠、下划线和点组成。 |
successCodes |
String |
否 |
成功码列表,100-600之间的数字,以逗号隔开。 |
healthyThreshold |
int |
否 |
健康阈值,取值范围2-10,默认为2。 |
interval |
int |
否 |
探测间隔时间,取值范围1-50,默认为5。 |
timeout |
int |
否 |
探测超时时间,取值范围1-300,默认为10。 |
unhealthyThreshold |
int |
否 |
不健康阈值,取值范围2-10,默认为3。 |
参数名 |
类型 |
是否必选 |
说明 |
---|---|---|---|
location |
String |
否 |
转发策略地址,长度不超过500,非中文。 |
targetGroup |
String |
否 |
后端集群名,长度不超过150,由字母、数字、下划线、横杠和点组成。 |
grayServiceName |
String |
否 |
灰度规则 |
degradeUrl |
String |
是 |
降级url
只有值为defaultDegrade时才为默认降级,其他值均认为是不降级。 |
configs |
否 |
通用与高级配置 |
参数名 |
类型 |
是否必选 |
说明 |
---|---|---|---|
name |
String |
是 |
名称,长度不超过50,由字母、数字、下划线、横杠和点组成,不能包含-in-且不能以-in结尾。 |
switchStatus |
String |
是 |
开关,取值为on或off。 |
defaultTargetGroup |
String |
是 |
默认后端集群。 |
enableGrey |
String |
是 |
默认后端集群是否仍参考灰度进行分流,取值为on/off,默认为off,只有输入on才为打开状态。 |
rules |
List<DynamicSubRuleBean> |
否 |
动态路由规则。 |
locations |
List<String> |
否 |
动态路由关联的转发策略列表。 |
参数名 |
类型 |
是否必选 |
说明 |
---|---|---|---|
condition |
String |
是 |
名称。 |
targetGroup |
String |
是 |
后端集群。 |
enableGray |
String |
是 |
是否仍参考灰度进行分流,取值为on/off,默认为off,只有输入on才为打开状态。 |
参数名 |
类型 |
是否必选 |
说明 |
---|---|---|---|
proxyReadTimeout |
int |
否 |
响应超时时间,不超过10位的数字。 |
proxySendTimeout |
int |
否 |
转发超时时间,不超过10位的数字。 |
keepaliveSwitch |
String |
否 |
启用长连接转发,是否keepalive。 |
hostSwitch |
String |
否 |
是否透传请求头,取值为on/off,不填或者其他字符均为off。 |
xForwardedForSwitch |
String |
否 |
是否追加XFF。 |
accessLogSwitch |
String |
否 |
是否开启access日志,取值为on/off,不填或者其他字符均为off。 |
proxyNextUpstreamSwitch |
String |
否 |
是否在异常时尝试下一台机器,取值为on/off,不填或者其他字符均为off。 |
proxyNextUpstreamCondition |
String |
否 |
尝试下一台机器的场景,取值为403、404、429、500、502、503、504、error、timeout、invalid_header。 |
clientConnectionFreeTime |
int |
否 |
客户端连接空闲时间,不超过10位的正整数。 |
proxyBuffersSwitch |
String |
否 |
开启响应缓存,取值为on/off,不填或者其他字符均为off。 |
proxyBuffersSize |
String |
否 |
响应缓存大小,数字+空格+k/m 组成,默认8 k。 |
expiresSwitch |
String |
否 |
高级配置中Expires开关,取值为on/off,不填或者其他字符均为 off。 |
expiresSize |
String |
否 |
设定页面缓存时间,不缓存或一直使用缓存。可以由字母、数字、空格、 $@+- 、冒号、逗号组成,长度不超过50位。 |
indexPage |
String |
否 |
静态页面场景index页面设置,长度不超过255,非中文。 |
returnVal |
String |
否 |
固定返回响应码,长度不超过255,非中文。 |
allowMethod |
String |
否 |
允许的http方法,对于转发策略有效,对于监听仅为参考,在界面新增转发策略时会继承监听的此项配置,其余场景个无效,GET、HEAD、POST、DELETE、PUT、OPTIONS、PATCH、MKCOL、COPY、MOVE、PROPFIND、PROPPATCH、LOCK、UNLOCK。 |
nuwaTraceSwitch |
String |
否 |
消息头中透传nuwatrace相关的网元身份标识和时间戳。 |
command |
String |
否 |
高级配置,自定义参数设置。 不要直接填写转发到某个集群的名称,例如proxy_pass http://upstreamName,这样配置会使得动态加载配置失效。 nginx配置命令,非中文。 |
root |
String |
否 |
默认资源根目录,长度不超过500,非中文。 |
clientMaxBodySize |
String |
否 |
最大请求体大小,数字+空格+k/m组成。 |
clientBodyBufferSize |
String |
否 |
请求体buffer大小,数字+空格+k/m 组成。 |
addHeaders |
List< GeneralKeyValueConfigBean> |
否 |
响应头。 |
setVals |
List< GeneralKeyValueConfigBean> |
否 |
对应页面set。 |
proxySetHeaders |
List< GeneralKeyValueConfigBean> |
否 |
请求头。 |
redirects |
List< GeneralRedirectConfigBean> |
否 |
重定向。 |
rewrites |
List< GeneralRedirectConfigBean> |
否 |
重写。 |
转发策略模板yaml
- name: hw_test // 必填项,不可修改,不可重复 type: WiseCloud::LoadBalancer::SLB::RouteRule // 资源类型为转发策略配置 properties: routes: // 非必填 - targetGroup: group1 grayServiceName: grayServce_hw location: /abc_hw1 degradeUrl: unDegrade // 必填项,unDegrade不降级,defaultDegrade默认降级 configs: hostSwitch: 'off' addHeaders: - value: b key: aaa clientConnectionFreeTime: 60 rewrites: - source: /test option: break target: /test_hw proxyReadTimeout: 60 setVals: - value: bbb key: aaa keepaliveSwitch: 'off' proxyBuffersSize: 2 m expiresSwitch: 'on' proxyBuffersSwitch: 'on' accessLogSwitch: 'on' clientMaxBodySize: 3 k clientBodyBufferSize: 2 k expiresSize: 2 m proxyNextUpstreamCondition: 'error,timeout' proxySendTimeout: 60 xForwardedForSwitch: 'off' proxyNextUpstreamSwitch: 'on' allowMethod: 'POST,PUT,DELETE' targetGroups: // 非必填 - protocol: HTTP // 必填项 loadBalancer: // 必填项,负载均衡类型 strategy: roundRobin // 必填项,负载均衡策略 healthCheck: // 非必填,健康检查 path: /abc_test protocol: HTTP // 固定项 successCodes: '200,302' healthyThreshold: '2' unhealthyThreshold: '3' switchStatus: 'on' // 默认关闭,on为打开,打开时,不传其他参数均使用默认值 name: group1 // 必填项,并且不可重复,长度不超过150,不包含特殊字符 - protocol: HTTP loadBalancer: hashParam: $xxx strategy: protocolParam customParam: $xxx healthCheck: switchStatus: 'off' name: group2 listenerGroupName: zwx_listener1 // 必填项,SLB监听名称,一个转发策略实例只能绑定一个监听实例 dynamicRoutes: // 非必填 - enableGrey: 'off' defaultTargetGroup: group1 // 必填并且存在于targetGroups中 name: /abc_test1_hw locations: - location: /abc_hw1 rules: - targetGroup: group1 enableGray: 'off' switchStatus: 'on'