在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。 |