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.
Bu yazıda neler var?
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
Add Comment