Brotli on CentOS Web Panel

Wednesday, March 11, 2020

Copy and paste guide to install and enable mod_brotli on CentOS Web Panel or CWP for short.

Compile & Install Brotli

yum install pcre-devel cmake -y
cd /usr/local/src
git clone https://github.com/google/brotli.git
cd brotli
git checkout v1.0.7
./configure-cmake
make && make install

Adding path for dependencies files

grep "/usr/local/lib/" /etc/ld.so.conf || echo "/usr/local/lib/" >> /etc/ld.so.conf
ldconfig

Compile Apache with this flags from CWP Apache rebuild module

--enable-brotli
--with-brotli=/usr

After Apache is rebuilded add this configs and create the config file

touch /usr/local/apache/conf.d/brotli.conf

Now add this line to /usr/local/apache/conf.d/brotli.conf

LoadModule brotli_module modules/mod_brotli.so
<IfModule mod_brotli.c>
BrotliCompressionQuality 6

BrotliFilterNote Input brotli_input_info
BrotliFilterNote Output brotli_output_info
BrotliFilterNote Ratio brotli_ratio_info
LogFormat '"%r" %{brotli_output_info}n/%{brotli_input_info}n (%{brotli_ratio_info}n%%)' brotli
CustomLog "logs/brotli_log" brotli

#Don't compress content which is already compressed
SetEnvIfNoCase Request_URI \
\.(gif|jpe?g|png|swf|woff|woff2) no-brotli dont-vary

#Make sure proxies don't deliver the wrong content
Header append Vary User-Agent env=!dont-vary
</IfModule>

After configuration restart Apache webserver

service httpd restart

To enable brotli compression for your site add config to .htaccess:

<IfModule mod_brotli.c>
AddOutputFilterByType BROTLI_COMPRESS text/html text/plain text/xml text/css text/javascript application/x-javascript application/javascript application/json application/x-font-ttf application/vnd.ms-fontobject image/x-icon
</IfModule>

links

cwpcentosapachebrotli
as free as beer

Fix RPMDB

Virsh Attach Iso to a VM