aboutsummaryrefslogtreecommitdiff
path: root/blog/2022-12-01-nginx-compression.org
diff options
context:
space:
mode:
Diffstat (limited to 'blog/2022-12-01-nginx-compression.org')
-rw-r--r--blog/2022-12-01-nginx-compression.org109
1 files changed, 59 insertions, 50 deletions
diff --git a/blog/2022-12-01-nginx-compression.org b/blog/2022-12-01-nginx-compression.org
index 2a22d76..c3669dd 100644
--- a/blog/2022-12-01-nginx-compression.org
+++ b/blog/2022-12-01-nginx-compression.org
@@ -1,40 +1,44 @@
-+++
-date = 2022-12-01
-title = "Enable GZIP Compression on Nginx"
-desciption = "Enable gzip compression on Nginx to server small text-based resources faster."
-+++
+#+title: Enable GZIP Compression on Nginx
+#+date: 2022-12-01
-## Text Compression
+** Text Compression
+:PROPERTIES:
+:CUSTOM_ID: text-compression
+:ID: 24C2F6E7-129E-42F3-91F0-A6C6C519FA01
+:END:
+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.
-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
+:PROPERTIES:
+:CUSTOM_ID: enable-nginx-compression-with-gzip
+:ID: C018C991-E253-4779-A702-AEB69614499F
+:END:
+In order to enable text compression on Nginx, we need to enable it
+within the configuration file:
-## Enable Nginx Compression with gzip
-
-In order to enable text compression on Nginx, we need to enable it within the
-configuration file:
-
-```sh
+#+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.
+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.
-```conf
+#+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:
-```conf
+#+begin_src conf
# Enable gzipping of responses.
gzip on;
gzip_vary on;
@@ -42,33 +46,38 @@ 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]\.";
-```
-
-## Explanations of ngx_http_gzip_module Options
-
-Each of the lines above enables a different aspect of the gzip response for
-Nginx. Here are the full explanations:
+#+end_src
+** Explanations of ngx_http_gzip_module Options
+:PROPERTIES:
+:CUSTOM_ID: explanations-of-ngx_http_gzip_module-options
+:ID: C180752B-E1B9-49A5-B180-84488068A76A
+:END:
+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.
+- =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
-[Module
-ngx_http_gzip_module](https://nginx.org/en/docs/http/ngx_http_gzip_module.html)
-page in Nginx's documentation.
+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_http_gzip_module]] page in Nginx's documentation.