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
# 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
# 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+
sudo add-apt-repository ppa:ondrej/php
sudo apt-get update
Commands to get both PHP and Nginx modules installed
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