在ASM中,ASMCompressor用于进行压缩设置。本文介绍ASMCompressor的字段说明。
ASMCompressor配置
字段 | 类型 | 是否必选 | 说明 |
workloadSelector | map<string, string> | 是 | 通过一个或多个标签,指明配置生效的一组特定的Pod。标签搜索的范围限制在资源所在的配置命名空间。更多信息,请参见WorkloadSelector。 |
isGateway | bool | 否 | 配置为true,表示配置作用于网关。默认为false。 |
portNumber | int | 是 | 对应的服务端口。如果关联网关,对应该网关定义的端口值。 |
compressor_library | 否 | 压缩库配置。 | |
request_direction_config | 否 | 请求方向配置。 | |
response_direction_config | 否 | 响应方向配置。 | |
per_route_configs | 否 | 路由级别的压缩配置(ASM1.21开始支持)。 |
CompressorLibrary压缩库配置
字段 | 类型 | 是否必选 | 说明 |
gzip | 否 | Gzip压缩配置。 | |
brotli | 否 | Brotli压缩配置。 |
GzipCompressor压缩配置
字段 | 类型 | 是否必选 | 说明 | 默认值 |
window_bits | int | 否 | 窗口位大小,取值为[9,15]。取值越大,压缩效果越好,但内存消耗越大。 | 12 |
compression_level | string | 否 | 压缩级别,将影响压缩速度和压缩大小。取值:
| DEFAULT |
memory_level | int | 否 | 内存级别,取值为[1,9]。控制压缩库内存的使用量,值越高内存消耗越大,但是压缩速度更快,压缩结果更好。 | 5 |
compression_strategy | string | 否 | 用于选择zlib压缩策略的值,该策略与内容的特性直接相关。取值:
| DEFAULT_STRATEGY |
BrotliCompressor压缩配置
字段 | 类型 | 是否必选 | 说明 | 默认值 |
window_bits | int | 否 | 窗口位大小,取值为[10,24]。取值越大,压缩效果越好,但内存消耗越大。 | 18 |
quality | int | 否 | 控制压缩速度,取值为[0,11]。质量越高,压缩速度越慢。 | 3 |
RequestDirectionConfig请求方向配置
字段 | 类型 | 是否必选 | 说明 | 默认值 |
common_config | 否 | 请求方向上过滤器行为的配置。 | 无 |
ResponseDirectionConfig响应方向配置
字段 | 类型 | 是否必选 | 说明 | 默认值 |
common_config | 否 | 响应方向上过滤器行为的配置。 | 无 | |
disable_on_etag_header | bool | 否 | 如果为true,当响应包含etag标头时禁用压缩。 | false |
remove_accept_encoding_header | bool | 否 | 如果为true,在将请求标头分派到上游之前从请求标头中删除接受编码,以便响应在到达过滤器之前不会被压缩。 | false |
CommonConfig配置
字段 | 说明 | 默认值 |
min_content_length | 启用压缩的内容最小长度。需要进行多次请求试验才能找到最适合的配置最佳值。Gzip压缩是一种依赖更多的CPU来换取压缩的方式,并可能带来更多的延迟。 | 无 |
content_type | 对哪些类型启用压缩。 | “application/javascript”, “application/json”, “application/xhtml+xml”, “image/svg+xml”, “text/css”, “text/html”, “text/plain”, “text/xml” |
ASMCompressorPerRouteConfig路由级别配置
字段 | 类型 | 是否必须 | 说明 |
route_match | 是 | 选择生效的具体路由。 | |
disabled | bool | 是 | 默认false。为true时,会为指定路由禁用压缩功能。 |
RouteConfigurationMatch选择具体路由
字段 | 类型 | 是否必须 | 说明 |
portNumber | uint32 | 否 | 服务端口或者网关规则中server的端口。如果是空,则视为匹配所有端口。 |
portName | string | 否 | 只有当应用在网关上时才生效。可以在这里指定网关规则中server的 |
gateway | string | 否 | 指定网关规则的命名空间和名称,格式为 |
vhost | 否 | 匹配一个virtual host。 | |
name | string | 否 | 要匹配的route configuration的名称。该配置需要对envoy配置比较熟悉。 |
CommonVirtualHostMatch匹配具体vhost
字段 | 类型 | 是否必须 | 说明 |
name | string | 否 | 控制面最终生成的VirtualHosts名称,格式为 |
route | 否 | 匹配vhost中一个具体路由。 |
CommonRouteMatch匹配vhost中具体的route
字段 | 类型 | 是否必须 | 说明 |
name | string | 否 | 默认生成的route名称为 |
action | string | 否 | 匹配指定的action类型。可选的值为:ROUTE、REDIRECT、DIRECT_RESPONSE以及ANY。默认为ANY。 |