转发策略配置
本章介绍通过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'