云容器引擎 CCE-负载均衡器配置:转发策略配置:高级转发策略配置

时间:2023-11-22 17:59:11

高级转发策略配置

监听器高级转发策略配置,支持泛域名,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"

}

support.huaweicloud.com/ref-cce/category_40.html