云容器引擎 CCE-负载均衡器配置:转发策略配置:高级转发策略配置
高级转发策略配置
监听器高级转发策略配置,支持泛域名,URL重定向等高级转发能力
参数名 |
取值范围 |
默认值 |
是否允许修改 |
作用范围 |
---|---|---|---|---|
k8s annotation: kubernetes.io/elb.enhance-l7policy |
无 |
无 |
允许 |
CCE Standard/CCE Turbo |
设置监听器下的高级转发策略,支持泛域名,URL重定向等。参考ELB文档填写如下结构体的Json格式。
type L7PolicyItem struct {
Name string json:"name,omitempty"
ListenerID string json:"listener_id,omitempty"
Action string json:"action,omitempty"
RedirectPoolID *string json:"redirect_pool_id"
RedirectPoolsExtendConfig *RedirectPoolsExtendConfig json:"redirect_pools_extend_config,omitempty"
RedirectListenerId string json:"redirect_listener_id,omitempty"
RedirectUrlConfig *RedirectUrlConfig json:"redirect_url_config,omitempty"
FixedResponseConfig *FixedResponseConfig json:"fixed_response_config,omitempty"
RedirectURL string json:"redirect_url,omitempty"
Rules []RuleItem json:"rules,omitempty"
Position int json:"position,omitempty"
Description string json:"description,omitempty"
}
type RedirectPoolsExtendConfig struct {
// 是否打开URL重写功能
RewriteUrlEnable bool json:"rewrite_url_enable"
// URL重写配置
RewriteUrlConfig *RewriteUrlConfig json:"rewrite_url_config,omitempty"
}
type RewriteUrlConfig struct {
// 重定向的查询字符串
Query string json:"query"
// 重定向的主机名
Host string json:"host,omitempty"
// 重定向的路径
Path string json:"path,omitempty"
}
type RedirectUrlConfig struct {
//重定向的协议。默认值${protocol}表示继承原值(即与被转发请求保持一致)。
//取值范围: HTTP, HTTPS
//${protocol}
//缺省值:${protocol}
//最小长度:1
//最大长度:36
Protocol string json:"protocol,omitempty"
// 重定向的查询字符串
Query string json:"query"
// 重定向后的返回码
// 取值范围: 301, 302, 303, 307, 308
StatusCode string json:"status_code"
// 重定向的主机名
Host string json:"host,omitempty"
// 重定向到的端口
Port string json:"port,omitempty"
// 重定向的路径
Path string json:"path,omitempty"
}
type FixedResponseConfig struct {
// 返回码。支持200~299,400~499,500~599
StatusCode string json:"status_code"
//返回body的格式。
//取值范围: text/plain, text/css, text/html, application/javascript, application/json, 缺省值:text/plain
//最小长度:0
//最大长度:32
MessageBody string json:"message_body"
//返回消息内容。
//最小长度:0
//最大长度:1024
ContentType string json:"content_type"
}
// RuleItem is the structure of Rule Item
type RuleItem struct {
ID string json:"id,omitempty"
// HOST_NAME, PATH, HEADER, METHOD, QUERY_STRING, SOURCE_IP
Type string json:"type,omitempty"
ProjectID string json:"project_id,omitempty"
// when type is HOST_NAME, this can be EQUAL_TO
// when type is PATH, this can be REGEX, STARTS_WITH or EQUAL_TO
CompareType string json:"compare_type,omitempty"
// must be false now
Invert bool json:"invert,omitempty"
// range with [0, 255]
// when type is HOST_NAME or PATH, just ignore this
Key string json:"key,omitempty"
// range with [0, 128]
// can not contains blank space
// when type is HOST_NAME, range with [0, 100],
// and only contains letters, digit, '-' or '.',
// must begin with letter or digit
Value string json:"value,omitempty"
// 当监听器的高级转发策略功能(enhance_l7policy_enable)开启后才会生效。若转发规则配置了conditions,字段key、字段value的值无意义
Conditions []Condition json:"conditions,omitempty"
}
// Condition
type Condition struct {
Key string json:"key,omitempty"
Value string json:"value,omitempty"
}