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