diff options
author | Christian Cleberg <hello@cleberg.net> | 2024-07-28 19:46:20 -0500 |
---|---|---|
committer | Christian Cleberg <hello@cleberg.net> | 2024-07-28 19:46:20 -0500 |
commit | 2be43cc479dfd4cfb621f14381330c708291e324 (patch) | |
tree | 7ac50f99425c5524c0820360754045b80d1bafcc /content/blog/2022-12-01-nginx-compression.org | |
parent | afe76ac7d7498b862abaa623790b91410e34574d (diff) | |
download | cleberg.net-2be43cc479dfd4cfb621f14381330c708291e324.tar.gz cleberg.net-2be43cc479dfd4cfb621f14381330c708291e324.tar.bz2 cleberg.net-2be43cc479dfd4cfb621f14381330c708291e324.zip |
conversion from Zola to Weblorg
Diffstat (limited to 'content/blog/2022-12-01-nginx-compression.org')
-rw-r--r-- | content/blog/2022-12-01-nginx-compression.org | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/content/blog/2022-12-01-nginx-compression.org b/content/blog/2022-12-01-nginx-compression.org new file mode 100644 index 0000000..621bc57 --- /dev/null +++ b/content/blog/2022-12-01-nginx-compression.org @@ -0,0 +1,76 @@ +#+date: <2022-12-01> +#+title: Enable GZIP Compression in Nginx +#+description: + + +* Text Compression + +Text compression allows a web server to serve text-based resources +faster than uncompressed data. This can speed up things like First +Contentful Paint, Tie to Interactive, and Speed Index. + +* Enable Nginx Compression with gzip + +In order to enable text compression on Nginx, we need to enable it +within the configuration file: + +#+begin_src sh +nano /etc/nginx/nginx.conf +#+end_src + +Within the =http= block, find the section that shows something like the +block below. This is the default gzip configuration I found in my +=nginx.conf= file on Alpine Linux 3.17. Yours may look slightly +different, just make sure that you're not creating any duplicate gzip +options. + +#+begin_src conf +# Enable gzipping of responses. +#gzip on; + +# Set the Vary HTTP header as defined in the RFC 2616. Default is 'off'. +gzip_vary on; +#+end_src + +Remove the default gzip lines and replace them with the following: + +#+begin_src conf +# Enable gzipping of responses. +gzip on; +gzip_vary on; +gzip_min_length 10240; +gzip_proxied expired no-cache no-store private auth; +gzip_types text/plain text/css text/xml text/javascript application/x-javascript application/xml; +gzip_disable "MSIE [1-6]"; +#+end_src + +* Explanations of ngx_{httpgzipmodule} Options + +Each of the lines above enables a different aspect of the gzip response +for Nginx. Here are the full explanations: + +- =gzip= -- Enables or disables gzipping of responses. +- =gzip_vary= -- Enables or disables inserting the "Vary: + Accept-Encoding" response header field if the directives gzip, + gzip_{static}, or gunzip are active. +- =gzip_min_length= -- Sets the minimum length of a response that will + be gzipped. The length is determined only from the "Content-Length" + response header field. +- =gzip_proxied= -- Enables or disables gzipping of responses for + proxied requests depending on the request and response. The fact that + the request is proxied is determined by the presence of the "Via" + request header field. +- =gzip_types= -- Enables gzipping of responses for the specified MIME + types in addition to "text/html". The special value "*" matches any + MIME type (0.8.29). Responses with the "text/html" type are always + compressed. +- =gzip_disable= -- Disables gzipping of responses for requests with + "User-Agent" header fields matching any of the specified regular + expressions. + - The special mask "msie6" (0.7.12) corresponds to the regular + expression "MSIE [4-6].", but works faster. Starting from version + 0.8.11, "MSIE 6.0; ... SV1" is excluded from this mask. + +More information on these directives and their options can be found on +the [[https://nginx.org/en/docs/http/ngx_http_gzip_module.html][Module +ngx_{httpgzipmodule}]] page in Nginx's documentation. |