Apparently brotli is a more efficient compression protocol than gzip.
Install both the PHP and the Nginx support
Install nginx Support
Install PHP Brotli Support
https://github.com/kjdev/php-ext-brotli
My Notes
I noticed that W3 Total Cache has a check for "brotli" compression so decided to investigate and then to enable it as it appears to be much more efficient than gzip.
Left gzip on
in http
section of my nginx.conf
and created a file named /etc/nginx.conf/brotli-compression.conf
and used include brotli-pression.conf
in nginx.conf
next to the gzip on directive
1 2 3 4 5 6 7 | # contents of /etc/nginx/brotli-compression.conf brotli on; brotli_comp_level 6; brotli_static on; brotli_types text/plain text/css application/javascript application/x-javascript text/xml application/xml application/xml+rss text/javascript image/x-icon image/vnd.microsoft.icon image/bmp image/svg+xml; |
Nginx.conf edits
1 2 3 4 5 6 7 8 9 10 11 12 | # in /etc/nginx/nginx.conf http { # snippage ## # Gzip Settings ## include brotli-compression.conf; gzip on; # more snippage include /etc/nginx/conf.d/*.conf; include /etc/nginx/sites-enabled/*; } |
Commands to install on Ubuntu 20.04
I have Ubuntu 20.04 installed so I can use PHP8.0+
1 2 | sudo add-apt-repository ppa:ondrej /php sudo apt-get update |
Commands to get both PHP and Nginx modules installed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | sudo apt-get install libnginx-mod-brotli sudo apt-get install brotli git clone --recursive --depth=1 https: //github .com /kjdev/php-ext-brotli .git cd php-ext-brotli/ sudo apt install php8.0-dev phpize sudo apt install libbrotli-dev libbrotli1 . /configure --with-libbrotli make sudo make install echo "extension=brotli.so" > /etc/php/8 .0 /mods-available/brotli .ini sudo phpenmod brotli sudo systemctl restart php8.0-fpm.service sudo systemctl restart nginx.service |
What it looks like in Developer Tools when you have brotli compression working?
Notice how the Requesting client (a modern browser says I will accept gzip, deflate, br
and the server responds with content-encoding: br

0 Comments