diff options
Diffstat (limited to 'blog/2022-12-01-nginx-compression.org')
-rw-r--r-- | blog/2022-12-01-nginx-compression.org | 83 |
1 files changed, 0 insertions, 83 deletions
diff --git a/blog/2022-12-01-nginx-compression.org b/blog/2022-12-01-nginx-compression.org deleted file mode 100644 index c3669dd..0000000 --- a/blog/2022-12-01-nginx-compression.org +++ /dev/null @@ -1,83 +0,0 @@ -#+title: Enable GZIP Compression on Nginx -#+date: 2022-12-01 - -** 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. - -** 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: - -#+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_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. - -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. |