Centos Ubuntu Web Servis

Apache Brotli Kurulumu

Günümüz internet dünyasında, hem trafik hem de arama motorları açısından, inşa ettiğimiz web sitelerinin kodlarını mümkün olduğunca sıkıştırmak gerekiyor. Google gibi arama motorları da kodları sıkıştırdığımız takdirde, Pagespeed üzerinde web sitelerimize daha yüksek puan veriyor. Ayrıca kodlarımızı ve görsellerimizi ne kadar fazla sıkıştırırsak trafiğimizde o kadar rahatlıyor ve ziyaretçiler de daha az trafik tüketmiş oluyor.

Sıkıştırma işlemleri özellikle Linux Hosting ve WordPress Hosting kullanıcı için önem arz ediyor.

Bu işlemleri genelde mod_gzip dediğimiz modül ile yapmaktayız. Fakat brotli ismi verilen modül sayesinde sıkıştırma işlemlerimizi daha performanslı hale getirebiliriz.

Mod Brotli Nedir?

Mod_brotli tıpkı mod_gzip gibi bir sıkıştırma aracıdır. Sıkıştırma işlemi ile; ziyaret edilen web sayfası ziyaretçinin tarayıcısına gönderilmeden önce sayfayı oluşturan tüm istemci taraflı kodlar ve görseller (html, java, css, jpg, png vb.) sunucu tarafından sıkıştırılır ve sonrasında tarayıcıya bu sıkıştırılmış dosya gönderilir. Gzip sıkıştırma işlemi de aynı işleve sahiptir, fakat mod_brotli, mod_gzip’e göre daha iyi sıkıştırma sağlar.

Brotli vs Gzip

mod_brotli ve mod_gzip arasındaki performans farkları şu şekildedir;

  • HTML dosyaları gzip’ten %21-25 daha küçüktür.
  • CSS dosyaları gzip’ten %17-20 daha küçüktür.
  • Brotli ile sıkıştırılmış Javascript dosyaları gzip’ten %10-20 daha küçüktür.

Mod_brotli Kurulumu

Bu makalemizde, mod_brotli kurulumunu Centos 7 ve Ubuntu sunucu üzerine gerçekleştireceğiz. Daha sonraki yazılarımızda mod_brotli kurulumunu destekleyen paneller üzerine de nasıl kurulumunun yapılacağını anlatacağız.

Gereksinimler:

  • Centos 7 veya Ubuntu Server
  • root veya root izinlerine haiz bir kullanıcı
  • Apache Web Sunucusu
  • Apache Web Sunucunun https olarak çalışması
  • Brotli ve mod_brotli kurulumu

Kurulum

Ubuntu;

apt-get install brotli

Centos;

yum install cmake -y
wget https://github.com/google/brotli/archive/master.zip
unzip master.zip
cd brotli-master

Daha sonra indirdiğimiz dosyayı derleyelim;

mkdir out && cd out
../configure-cmake
make
make test
make install

Kurulumu doğrulamak için Brotli versiyonu kontrolü yapabiliriz.;

brotli --version
brotli 1.0.4

Yardım için;

brotli --help

Brotli kurulumu tamamsa, apache işlemleri için devel paketini kurmamız gerekiyor;

Ubuntu;

apt-get install apache2-dev

Centos;

yum install httpd-devel

Daha sonra, mod_brotli paketini indirip derlememiz gerekiyor;

git clone --depth=1 --recursive https://github.com/kjdev/apache-mod-brotli.git
 cd apache-mod-brotli
 ./autogen.sh
 ./configure
 make

Ubuntu;

install -D .libs/mod_brotli.so /usr/lib/apache2/modules/mod_brotli.so -m 644

Centos;

cp .libs/mod_brotli.so /usr/lib64/httpd/modules/mod_brotli.so -fv

Ubuntu üzerinde işlemleri yapıyorsanız a2enmod kurulumu gerçekleştirmemiz gerekiyor.

cd /etc/apache2/mods-available
echo "LoadModule brotli_module /usr/lib/apache2/modules/mod_brotli.so" > brotli.load

kurulum işlemleri tamamlandı, mod_brotli yapılandırma işlemlerine geçebiliriz.

Mod_Brotli Yapılandırma

Centos;

Favori editörümüz ile brotli.conf dosyasını açalım;

nano /etc/httpd/conf.d/brotli.conf

Ve dosyanın içine aşağıdaki ibareleri yapıştıralım;

<IfModule brotli_module>
 BrotliCompressionLevel 10
 BrotliWindowSize 22
 AddOutputFilterByType BROTLI text/html text/plain text/css text/xml
 AddOutputFilterByType BROTLI text/css
 AddOutputFilterByType BROTLI application/x-javascript application/javascript
 AddOutputFilterByType BROTLI application/rss+xml
 AddOutputFilterByType BROTLI application/xml
 AddOutputFilterByType BROTLI application/json
 </IfModule>

Dosyayı kaydedip çıkalım ve http servisini restart edelim.

systemctl start httpd.service

Ubuntu;

nano brotli.conf

Dosyaya aşağıdakileri kopyalayalım;

<IfModule brotli_module>
 BrotliCompressionLevel 10
 BrotliWindowSize 22
 AddOutputFilterByType BROTLI text/html text/plain text/css text/xml
 AddOutputFilterByType BROTLI text/css
 AddOutputFilterByType BROTLI application/x-javascript application/javascript
 AddOutputFilterByType BROTLI application/rss+xml
 AddOutputFilterByType BROTLI application/xml
 AddOutputFilterByType BROTLI application/json
 </IfModule>

a2enmod’u brotli için aktif edip, servisi yeniden başlatalım;

a2enmod brotli
service apache2 restart

Kurulum işlemleri tamamlandı. https://tools.keycdn.com/brotli-test sayfasından veya header bilginizden mod_brotli’nin çalışıp çalışmadığını kontrol edebilirsiniz.

Brotli compression is supported.

Yapılandırma işlemleri için resmi Apache sayfasından daha fazla detay alabilir ve yapılandırma işlemlerinizi daha fazla detaylandırabilirsiniz.

https://httpd.apache.org/docs/trunk/mod/mod_brotli.html