Compress
The Compress middleware compresses response. It supports Gzip and Brotli compression.
Configuration Example
- Middleware Compress
apiVersion: traefik.io/v1alpha1
kind: Middleware
metadata:
name: compress
namesapce: apps
spec:
compress: {}
Configuration Options
Field | Description | Default | Required |
---|---|---|---|
excludedContentTypes | List of content types to compare the Content-Type header of the incoming requests and responses before compressing. The responses with content types defined in excludedContentTypes are not compressed. Content types are compared in a case-insensitive, whitespace-ignored manner. The excludedContentTypes and includedContentTypes options are mutually exclusive. | "" | No |
includedContentTypes | List of content types to compare the Content-Type header of the responses before compressing. The responses with content types defined in includedContentTypes are compressed. Content types are compared in a case-insensitive, whitespace-ignored manner. The excludedContentTypes and includedContentTypes options are mutually exclusive. | "" | No |
minResponseBodyBytes | `Minimum amount of bytes a response body must have to be compressed. Responses smaller than the specified values will not be compressed. | 1024 | No |
Compression activation
The activation of compression, and the compression method choice rely (among other things) on the request's Accept-Encoding
header.
Responses are compressed when the following criteria are all met:
- The
Accept-Encoding
request header containsgzip
,*
, and/orbr
with or without quality values. If theAccept-Encoding
request header is absent, the response won't be encoded. If it is present, but its value is the empty string, then compression is turned off. - The response is not already compressed, that is the
Content-Encoding
response header is not already set. - The response
Content-Type
header is not one among theexcludedContentTypes
options, or is one among theincludedContentTypes
options. - The response body is larger than the configured minimum amount of bytes(option
minResponseBodyBytes
) (default is1024
).
Empty Content-Type Header
If the Content-Type
header is not defined, or empty, the compress middleware will automatically detect a content type.
It will also set the Content-Type
header according to the detected MIME type.