Gzip Sıkıştırma: HTTP Response'larda Boyutu Küçültme
HTTP yanıtları bazen çok büyük olur. Özellikle HTML, CSS ve JavaScript dosyaları yüz kilobaytı aşabilir. Gzip bu dosyaları sıkıştırarak ağda daha az veri taşımasını sağlar. Sonuç: sayfa daha hızlı yüklenir, kullanıcı bant genişliği tasarrufu yapar.
Gzip nasıl çalışır? Tarayıcı sunucuya "gzip kabul ediyorum" mesajı gönderir. Sunucu dosyayı sıkıştırıp geri yollar. Tarayıcı otomatik olarak açar. Kullanıcı hiçbir fark etmez.
Sıkıştırma oranı dosya türüne bağlı. Metin tabanlı dosyalar (HTML, CSS, JSON) yüzde 60-80 oranında küçülür. Resimler (JPEG, PNG) zaten sıkıştırılı olduğu için gzip pek yardımcı olmaz.
Nginx'te Gzip Açma
Nginx sunucusunun ayar dosyasını (genelde /etc/nginx/nginx.conf) açıp şu satırları ekle:
1http {2gzip on;3gzip_types text/plain text/css text/xml text/javascript 4application/x-javascript application/xml+rss 5application/json;6gzip_min_length 1000;7gzip_comp_level 6;8}Bu ayarlar ne yapıyor?
gzip on: Sıkıştırmayı etkinleştir.gzip_types: Hangi dosya türlerini sıkıştıracağını belirt. Resim formatlarını ekleme.gzip_min_length 1000: 1000 bayttan küçük dosyaları sıkıştırma (yararı yoktur).gzip_comp_level 6: Sıkıştırma seviyesi (1-9). 6 hız ve oran dengesidir.
Değişiklikleri kaydet, sonra Nginx'i yeniden başlat:
1sudo systemctl restart nginxTest Etme
Browser geliştirici araçlarında Network sekmesine bak. Response Headers'da Content-Encoding: gzip görürsen başarılı. Dosya boyutu da gözle görülür şekilde küçülmüş olur.
Curl ile de kontrol edebilirsin:
1curl -H "Accept-Encoding: gzip" -i https://ornek.comÇıktıda Content-Encoding: gzip satırı varsa, sunucu sıkıştırıyor demektir.
Uyarı
Sıkıştırma CPU'yu biraz kullanır. Yüksek trafikli siteler comp_level'i 4-5'e düşürebilir. Zaten sıkıştırılmış dosyalar (video, resim) tekrar sıkıştırma yapma. Gzip en çok metin dosyalarına fayda sağlar.
0 yorum