跳转至

Compress

将响应压缩之后在发送给客户端

Compress

Compress 中间件启用 gzip 压缩。

配置示例

# 开启 gzip 压缩
labels:
  - "traefik.http.middlewares.test-compress.compress=true"
# 开启 gzip 压缩
apiVersion: traefik.containo.us/v1alpha1
kind: Middleware
metadata:
  name: test-compress
spec:
  compress: {}
# 开启 gzip 压缩
- "traefik.http.middlewares.test-compress.compress=true"
"labels": {
  "traefik.http.middlewares.test-compress.compress": "true"
}
# 开启 gzip 压缩
labels:
  - "traefik.http.middlewares.test-compress.compress=true"
# 开启 gzip 压缩
[http.middlewares]
  [http.middlewares.test-compress.compress]
# 开启 gzip 压缩
http:
  middlewares:
    test-compress:
      compress: {}

Info

响应在以下情况下会被压缩:

  • 响应体大于 1400 字节。
  • Accept-Encoding 请求头包含 gzip
  • 响应尚未压缩,即尚未设置 Content-Encoding 响应头。

配置选项

excludedContentTypes

excludedContentTypes 指定一系列内容类型,以便在压缩之前将传入请求的 Content-Type 请求头与之对比。

请求中 excludedContentTypes 定义的内容类型不会被压缩。

内容类型压缩时忽略大小写和空格。

labels:
  - "traefik.http.middlewares.test-compress.compress.excludedcontenttypes=text/event-stream"
apiVersion: traefik.containo.us/v1alpha1
kind: Middleware
metadata:
  name: test-compress
spec:
  compress:
    excludedContentTypes:
      - text/event-stream
- "traefik.http.middlewares.test-compress.compress.excludedcontenttypes=text/event-stream"
"labels": {
  "traefik.http.middlewares.test-compress.compress.excludedcontenttypes": "text/event-stream"
}
labels:
  - "traefik.http.middlewares.test-compress.compress.excludedcontenttypes=text/event-stream"
[http.middlewares]
  [http.middlewares.test-compress.compress]
    excludedContentTypes = ["text/event-stream"]
http:
  middlewares:
    test-compress:
      compress:
        excludedContentTypes:
          - text/event-stream

本节翻译作者:@罗立志