Apache'de Mod_Deflate ile Gzip Sıkıştırmasını Etkinleştirme: Band Genişliğinizi ve Hızınızı Artırın 
Selam sistemciler!
Bugün, web sunucunuzu neredeyse "bedavaya" optimize edebileceğiniz, hem ziyaretçi deneyimini hem de sunucu kaynak kullanımınızı iyileştirecek harika bir numaradan bahsedeceğiz: Gzip sıkıştırması.
Basitçe anlatmak gerekirse, Gzip, sunucunuzdan tarayıcıya gönderdiğiniz HTML, CSS, JavaScript gibi metin tabanlı dosyaları sıkıştırır. Bu, dosya boyutlarını %50-%70 oranında küçültebilir! Daha küçük dosya = daha hızlı indirme = daha hızlı sayfa yüklenmesi demek. Hem ziyaretçileriniz mutlu olur, hem de özellikle trafiği yüksek sitelerde sunucunuzun çıkış bant genişliğinden ciddi tasarruf edersiniz.
Apache'de bu işi mod_deflate modülü halleder. Hadi birlikte nasıl aktif hale getireceğimize bakalım.
Adım 1: Modülün Kontrolü ve Etkinleştirilmesi
Öncelikle, `mod_deflate` modülünün yüklü ve aktif olup olmadığını kontrol edelim. Aşağıdaki komutu sunucunuzda çalıştırın:
Eğer `deflate_module (shared)` benzeri bir çıktı görüyorsanız, modül zaten aktif. Eğer görmüyorsanız, dağıtımınıza göre etkinleştirmeniz gerekebilir.
Adım 2: Yapılandırma Dosyasını Düzenlemek
Asıl sihir, yapılandırma dosyasında gerçekleşiyor. Apache'nin ana yapılandırma dosyasını (`httpd.conf` veya `apache2.conf`) veya daha iyisi, bir sanal host (site) yapılandırma dosyasını ya da `/etc/apache2/conf-available/deflate.conf` gibi özel bir konfigürasyon dosyasını düzenleyeceğiz.
Aşağıdaki yapılandırma bloğunu tercih ettiğiniz dosyaya ekleyin. Bu, çoğu web sitesi için iyi bir başlangıç noktasıdır:
Adım 3: Yapılandırmayı Test Edip Apache'yi Yeniden Başlatmak
Herhangi bir Apache yapılandırma değişikliğinden sonra yapmamız gereken ilk şey, sözdizimi hataları olup olmadığını kontrol etmektir:
Eğer "Syntax OK" mesajını alırsanız, artık Apache servisini yeniden başlatabilirsiniz:
İşin Püf Noktaları ve İpuçları
Gördüğünüz gibi, birkaç satır konfigürasyon ile sunucunuzun performansına ve cebinize (bant genişliği maliyetleri) gerçek bir katkı yapmak mümkün. Bu tür küçük dokunuşlar, büyük farklar yaratır.
Peki ya siz? Sunucularınızda hangi performans iyileştirme numaralarını kullanıyorsunuz? Özellikle yüksek trafikli ortamlarda başka hangi "hileler" işinize yarıyor? Yorumlarda deneyimlerinizi paylaşın, hep birlikte öğrenelim!
Selam sistemciler!
Basitçe anlatmak gerekirse, Gzip, sunucunuzdan tarayıcıya gönderdiğiniz HTML, CSS, JavaScript gibi metin tabanlı dosyaları sıkıştırır. Bu, dosya boyutlarını %50-%70 oranında küçültebilir! Daha küçük dosya = daha hızlı indirme = daha hızlı sayfa yüklenmesi demek. Hem ziyaretçileriniz mutlu olur, hem de özellikle trafiği yüksek sitelerde sunucunuzun çıkış bant genişliğinden ciddi tasarruf edersiniz.
Apache'de bu işi mod_deflate modülü halleder. Hadi birlikte nasıl aktif hale getireceğimize bakalım.
Adım 1: Modülün Kontrolü ve Etkinleştirilmesi
Öncelikle, `mod_deflate` modülünün yüklü ve aktif olup olmadığını kontrol edelim. Aşağıdaki komutu sunucunuzda çalıştırın:
Bash:
apache2ctl -M 2>/dev/null | grep deflate
# veya
httpd -M 2>/dev/null | grep deflate
Eğer `deflate_module (shared)` benzeri bir çıktı görüyorsanız, modül zaten aktif. Eğer görmüyorsanız, dağıtımınıza göre etkinleştirmeniz gerekebilir.
- Debian/Ubuntu'da: `sudo a2enmod deflate` komutunu çalıştırın ve ardından Apache'yi yeniden başlatın (`sudo systemctl restart apache2`).
- CentOS/RHEL'da: Genellikle önceden yüklü gelir. `/etc/httpd/conf.modules.d/00-base.conf` dosyasında `LoadModule deflate_module modules/mod_deflate.so` satırının başında `#` olmadığından emin olun.
Adım 2: Yapılandırma Dosyasını Düzenlemek
Asıl sihir, yapılandırma dosyasında gerçekleşiyor. Apache'nin ana yapılandırma dosyasını (`httpd.conf` veya `apache2.conf`) veya daha iyisi, bir sanal host (site) yapılandırma dosyasını ya da `/etc/apache2/conf-available/deflate.conf` gibi özel bir konfigürasyon dosyasını düzenleyeceğiz.
Aşağıdaki yapılandırma bloğunu tercih ettiğiniz dosyaya ekleyin. Bu, çoğu web sitesi için iyi bir başlangıç noktasıdır:
Kod:
# Gzip sıkıştırmayı etkinleştir
<IfModule mod_deflate.c>
# Temel sıkıştırma ayarları
DeflateCompressionLevel 6
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
# Hangi MIME tiplerini sıkıştıracağımızı belirtiyoruz
AddOutputFilterByType DEFLATE text/html text/plain text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/javascript application/x-javascript application/json
AddOutputFilterByType DEFLATE application/xml application/xhtml+xml application/rss+xml
AddOutputFilterByType DEFLATE application/vnd.ms-fontobject application/x-font-ttf font/opentype image/svg+xml image/x-icon
# Eski proxy sunucuları için başlık sorunlarını önle
Header append Vary User-Agent env=!dont-vary
</IfModule>
Adım 3: Yapılandırmayı Test Edip Apache'yi Yeniden Başlatmak
Herhangi bir Apache yapılandırma değişikliğinden sonra yapmamız gereken ilk şey, sözdizimi hataları olup olmadığını kontrol etmektir:
Bash:
# Debian/Ubuntu
sudo apache2ctl configtest
# CentOS/RHEL
sudo apachectl configtest
Eğer "Syntax OK" mesajını alırsanız, artık Apache servisini yeniden başlatabilirsiniz:
Bash:
# Debian/Ubuntu
sudo systemctl reload apache2 # veya restart
# CentOS/RHEL
sudo systemctl reload httpd # veya restart
İşin Püf Noktaları ve İpuçları
- Ne Sıkıştırmamalı? Zaten sıkıştırılmış dosyaları (JPEG, PNG, GIF, PDF, ZIP) tekrar sıkıştırmaya çalışmak CPU zamanı israfıdır ve boyutta önemli bir azalma sağlamaz. Onları listeye eklemeyin.
- CompressionLevel Nedir? 1 (en hızlı, en az sıkıştırma) ile 9 (en yavaş, en çok sıkıştırma) arasında değişir. 6 genellikle iyi bir dengedir. Çok yüksek seviyeler sunucu CPU'sunu yorabilir.
- Nasıl Test Ederim? Tarayıcınızın Geliştirici Araçları'nı (F12) açın, "Network" sekmesine gidin ve sitenizi yenileyin. Bir dosyaya tıklayıp "Headers" kısmına baktığınızda `Content-Encoding: gzip` ifadesini görüyorsanız, başardınız!
Ayrıca GTmetrix, PageSpeed Insights veya Pingdom gibi araçlar da sıkıştırmanın etkin olup olmadığını ve sağladığı kazancı raporlar. - CDN Kullanıyorsanız: Cloudflare gibi bir CDN kullanıyorsanız, CDN'nin kendi sıkıştırma ayarları olabilir. İkisini aynı anda aktif bırakabilirsiniz (genellikle sorun olmaz) veya CDN tarafında yönetmeyi tercih edebilirsiniz.
Gördüğünüz gibi, birkaç satır konfigürasyon ile sunucunuzun performansına ve cebinize (bant genişliği maliyetleri) gerçek bir katkı yapmak mümkün. Bu tür küçük dokunuşlar, büyük farklar yaratır.
Peki ya siz? Sunucularınızda hangi performans iyileştirme numaralarını kullanıyorsunuz? Özellikle yüksek trafikli ortamlarda başka hangi "hileler" işinize yarıyor? Yorumlarda deneyimlerinizi paylaşın, hep birlikte öğrenelim!