Question
How to enable/disable gzip compression in nginx on a Plesk server?
Answer
Note: Since Plesk Obsidian 18.0.33 it is possible to use BROTLI compression which is considered to be better compression than GZIP.
For a domain in Plesk
Go to Domains > example.com > Hosting & DNS > Apache & nginx Settings.
Add the following directives to the Additional nginx directives field:
gzip on;
gzip_disable "MSIE [1-6].(?!.*SV1)";
gzip_proxied any;
gzip_comp_level 5;
gzip_types text/plain text/css application/javascript application/x-javascript text/xml application/xml application/rss+xml text/javascript image/x-icon image/bmp image/svg+xml;
gzip_vary on;Note: This is an example. If needed, add other file types in the
gzip_typessection, e.g.application/javascript,application/js, etc. The full list of available types can be found on a server in the file/etc/nginx/mime.types.Apply the changes.
Go to Domains > example.com > Hosting & DNS > Apache & nginx Settings.
Note: To disable gzip compression for a domain/subdomain that does not exist in Plesk (e.g. hostname), create it first.
Add the following directive to the Additional nginx directives field:
gzip off;
Click Apply to save the changes.
For all domains via nginx global configuration
Connect to a Plesk server via SSH.
Create the
gzip.conffile inside nginx conf.d directory:# touch /etc/nginx/conf.d/gzip.conf
Open the file in any text editor. In this example, we are using the vi editor:
# vi /etc/nginx/conf.d/gzip.conf
Insert the following content in it:
gzip on;
gzip_disable "MSIE [1-6].(?!.*SV1)";
gzip_proxied any;
gzip_comp_level 5;
gzip_types text/plain text/css application/javascript application/x-javascript text/xml application/xml application/rss+xml text/javascript image/x-icon image/bmp image/svg+xml;
gzip_vary on;Note: This is an example. If needed, add other file types in the
gzip_typessection, e.g.application/javascript,application/js, etc. The full list of available types can be found on a server in the file/etc/nginx/mime.types.Save the changes and close the file.
Test nginx configuration:
# nginx -t
Reload
nginxconfiguration to apply the changes:# service nginx reload
Now gzip compression is enabled for all domains on the server.
To verify that gzip compression is enabled, use the command below. When gzip is enabled you will see 'Content-Encoding: gzip' in the output:
Note: If the website has a www redirection, change the website name to www.example.com.
If the website is using HTTP connection:
# curl -s -H "Accept-Encoding: gzip" -I http://example.com | grep -i Content-Encoding
Content-Encoding: gzipIf the website is using HTTPS connection:
# curl -s -H "Accept-Encoding: gzip" -I https://example.com --insecure | grep -i Content-Encoding
Content-Encoding: gzip…