title | keywords | description | ||||
---|---|---|---|---|---|---|
gzip |
|
This document contains information about the Apache APISIX gzip Plugin. |
The gzip
Plugin dynamically sets the behavior of gzip in Nginx.
:::info IMPORTANT
This Plugin requires APISIX to run on APISIX-Base.
:::
Name | Type | Required | Default | Valid values | Description |
---|---|---|---|---|---|
types | array[string] or "*" | False | ["text/html"] | Dynamically sets the gzip_types directive. Special value "*" matches any MIME type. |
|
min_length | integer | False | 20 | >= 1 | Dynamically sets the gzip_min_length directive. |
comp_level | integer | False | 1 | [1, 9] | Dynamically sets the gzip_comp_level directive. |
http_version | number | False | 1.1 | 1.1, 1.0 | Dynamically sets the gzip_http_version directive. |
buffers.number | integer | False | 32 | >= 1 | Dynamically sets the gzip_buffers directive. |
buffers.size | integer | False | 4096 | >= 1 | Dynamically sets the gzip_buffers directive. |
vary | boolean | False | false | Dynamically sets the gzip_vary directive. |
The example below enables the gzip
Plugin on the specified Route:
curl -i http://127.0.0.1:9180/apisix/admin/routes/1 -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '
{
"uri": "/index.html",
"plugins": {
"gzip": {
"buffers": {
"number": 8
}
}
},
"upstream": {
"type": "roundrobin",
"nodes": {
"127.0.0.1:1980": 1
}
}
}'
Once you have configured the Plugin as shown above, you can make a request as shown below:
curl http://127.0.0.1:9080/index.html -i -H "Accept-Encoding: gzip"
HTTP/1.1 404 Not Found
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: keep-alive
Date: Wed, 21 Jul 2021 03:52:55 GMT
Server: APISIX/2.7
Content-Encoding: gzip
Warning: Binary output can mess up your terminal. Use "--output -" to tell
Warning: curl to output it to your terminal anyway, or consider "--output
Warning: <FILE>" to save to a file.
To remove the gzip
Plugin, you can delete the corresponding JSON configuration from the Plugin configuration. APISIX will automatically reload and you do not have to restart for this to take effect.
curl http://127.0.0.1:9180/apisix/admin/routes/1 -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '
{
"uri": "/index.html",
"upstream": {
"type": "roundrobin",
"nodes": {
"127.0.0.1:1980": 1
}
}
}'