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 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.
mod_brotli ve mod_gzip arasındaki performans farkları şu şekildedir;
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.
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.
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
Brotli modülü Gzip’e göre ne kadar performans artışı sağlar?
Yapılan testlere göre HTML, CSS ve JavaScript dosyalarında %10 ila %25 arasında ek sıkıştırma sağlar. Bu da daha düşük bant genişliği kullanımı ve daha hızlı sayfa yükleme süreleri anlamına gelir.
Brotli compression her tarayıcı tarafından destekleniyor mu?
Chrome, Firefox, Edge, Safari ve Opera gibi modern tarayıcılar Brotli desteğine sahiptir. Ancak eski tarayıcılarda yalnızca Gzip desteklenebilir. Bu yüzden çoğu sunucu yapılandırmasında Brotli ile birlikte Gzip de yedek olarak açık bırakılır.
Brotli sıkıştırma seviyesi kaç olmalıdır?
Varsayılan seviye genellikle 5’tir. Maksimum değer 11 olsa da, en yüksek seviyeler CPU tüketimini artırabilir. Sunucunun kaynaklarına göre 6–8 arası önerilir.
Brotli kurulumu Apache dışında Nginx üzerinde de yapılabilir mi?
Nginx için de Brotli modülü mevcuttur. Google tarafından sağlanan brotli kütüphanesi Nginx ile derlenip etkinleştirilebilir.
Brotli sıkıştırması görseller için de geçerli midir?
Brotli genellikle metin tabanlı içerikler (HTML, CSS, JS, JSON, XML) için kullanılır. JPG, PNG gibi görseller zaten kendi sıkıştırma algoritmalarına sahip olduğu için ek bir fayda sağlamaz.
Apache’de Brotli sıkıştırmanın çalışıp çalışmadığı nasıl test edilir?
Header yanıtlarını curl -I -H "Accept-Encoding: br" https://domain.com komutuyla veya KeyCDN Brotli Test gibi çevrim içi araçlarla kontrol edebilirsiniz.
Veritabanını seçmenin performans, lisans ve güvenlik gibi konularda yarattığı zorlukları biliyoruz. Bu seçimi kolaylaştırmak için,…
Snapshot Nedir? Snapshot, bir sanal sunucunun (VM) mevcut çalışma hali, disk yapısı ve yapılandırmasının o…
Sunucu yönetiminde yeni sürümlere geçiş, her zaman iş sürekliliği için kritik bir adımdır. Proxmox VE…
Sanallaştırma ortamlarında en çok kullanılan platformlardan biri VMware vSphere’dir. Ancak sistem doğru izlenmezse performans sorunları,…
IT ekiplerinin karşılaştığı en büyük sorunlardan biri, farklı araç ve sistemler yüzünden operasyonların karmaşık hale…
Fidye Yazılımı Saldırısı Nedir? Fidye yazılımı saldırısı (ransomware) kötü niyetli kişilerin, belirli bir sistemin, dosyalarını…