Mehmet

WFN Üye
Konular
1,851
Mesajlar
1,852
Çözüm
0
Ticaret Puanı
0
Üyelik
1 Ay 6 Gün
Konum
YurtDışı
Web Sitesi
Var
Alanı
Google Adsense
1/1
Konu sahibi
Apache sunucuda metin tabanlı dosyaları Gzip ile sıkıştırmak için sitenin ilgili dizinindeki .htaccess dosyasına mod_deflate kurallarını ekleyebilirsiniz. En küçük uygulanabilir yapılandırma, HTML, CSS, JavaScript, JSON, XML ve SVG gibi sıkıştırılmaya uygun içerik türlerini hedeflemelidir.

Çalışan temel yapılandırma​


Ön koşul olarak Apache üzerinde mod_deflate ve AddOutputFilterByType yönergesini sağlayan mod_filter etkin olmalı ve sunucu, ilgili dizinde .htaccess içindeki FileInfo türü yönergelere izin vermelidir. Sitenin belge kök dizinindeki mevcut .htaccess dosyasını yedekleyin ve aşağıdaki bloğu ekleyin:

Kod:
<IfModule mod_deflate.c>
    AddOutputFilterByType DEFLATE text/plain
    AddOutputFilterByType DEFLATE text/html
    AddOutputFilterByType DEFLATE text/css
    AddOutputFilterByType DEFLATE text/xml
    AddOutputFilterByType DEFLATE application/xml
    AddOutputFilterByType DEFLATE application/xhtml+xml
    AddOutputFilterByType DEFLATE text/javascript
    AddOutputFilterByType DEFLATE application/javascript
    AddOutputFilterByType DEFLATE application/json
    AddOutputFilterByType DEFLATE image/svg+xml
</IfModule>

  1. .htaccess dosyasını sitenin doğru belge köküne veya kuralların uygulanmasını istediğiniz alt dizine yerleştirin.
  2. Dosyanın mevcut kurallarına ekleme yapın; özellikle yönlendirme, erişim ve önbellek kurallarını silmeyin.
  3. Değişikliği kaydedin ve sunucunun hata günlüğünü kontrol ederek Apache yapılandırma hatası oluşmadığını doğrulayın.
  4. Gzip isteyen bir istemci başlığıyla metin dosyasını test edin.

Örnek test (Linux/macOS gibi POSIX kabukta /dev/null kullanılır):

Kod:
curl -sS -D - -o /dev/null -H "Accept-Encoding: gzip" https://example.com/

Başarılı sonuçta yanıt başlıkları arasında Content-Encoding: gzip görülmelidir. Vary: Accept-Encoding başlığı da önbelleklerin Gzip destekleyen ve desteklemeyen istemcileri birbirinden ayırmasına yardımcı olur. Ana sayfa HTML üretmiyorsa, aynı testi gerçek bir CSS veya JavaScript dosyası üzerinde yapmak daha anlamlıdır.

Hangi dosyalar sıkıştırılmalı?​


Gzip özellikle metin içeriğinde tekrar eden karakterleri azaltır. Görsel, video, arşiv ve çoğu yazı tipi dosyası zaten sıkıştırılmış olduğundan bunları tekrar Gzip yapmak genellikle gereksiz işlem yükü oluşturur.

İçerikGzip kararıGerekçe
HTML, CSS, JavaScriptEtkinleştirMetin yapısı nedeniyle genellikle iyi sıkışır.
JSON ve XMLEtkinleştirAPI ve veri yanıtlarında aktarılacak metin azalır.
SVGGenellikle etkinleştirMetin tabanlıdır; ancak dosyanın gerçekten SVG MIME türüyle sunulduğunu kontrol edin.
JPG, PNG, GIF, MP4, ZIP, PDFGenellikle hariç bırakÇoğu zaten sıkıştırılmıştır; ek kazanç düşük olabilir.

Sonuç alınmazsa nasıl yorumlanır?​


Content-Encoding: gzip yoksa önce test isteğinde Accept-Encoding: gzip gönderildiğini kontrol edin. Ardından dosyanın listelenen MIME türlerinden biriyle sunulup sunulmadığına bakın. Kural hiç çalışmıyorsa mod_deflate etkin olmayabilir veya sunucu .htaccess içinde bu yönergelere izin vermiyor olabilir. Bu durumda hosting yöneticisinin Apache yapılandırmasında modülü ve AllowOverride izinlerini kontrol etmesi gerekir.

Değişiklikten sonra 500 hatası oluşursa hatanın nedeni çoğunlukla desteklenmeyen bir yönerge, yazım hatası veya sunucuda etkin olmayan bir modüldür. Hata günlüğündeki mesajı incelemeden rastgele yeni kurallar eklemeyin; son eklediğiniz bloğu geçici olarak kaldırıp siteyi tekrar doğrulayın.

Gzip yalnızca istemci bunu desteklediğinde uygulanmalıdır; Apache’nin modülü bu içerik pazarlığını normalde yanıt başlıkları üzerinden yönetir. Ayrıca uygulama, CDN veya hosting paneli zaten sıkıştırma yapıyorsa aynı işi ikinci kez .htaccess üzerinden zorlamayın. Testte hedef, dosyanın istemciye tek kez ve uygun içerik türüyle sıkıştırılmış ulaşmasıdır.

Sık sorulan sorular​

Gzip aktarım boyutunu azaltınca sunucu ve tarayıcı işi de biter mi?​

Hayır. Sunucu sıkıştırma için CPU kullanır, tarayıcı da içeriği açıp işler. Aktarılan dosyanın küçülmesi HTML/JavaScript işleme maliyetini veya yavaş veritabanını kendiliğinden azaltmaz. Boyut kazancını ve gerçek yanıt süresini birlikte ölçün.

Hassas dinamik sayfalarda aynı kuralı kullanmak her zaman uygun mu?​

Her yanıt için aynı karar verilmez. TLS üzerinde sır içeren ve saldırganın etkileyebildiği içerikle birlikte sıkıştırılan bazı dinamik yanıtlar BREACH türü bilgi sızıntısı riskine açık olabilir. Uygulamanın ilgili yanıtları için sıkıştırma politikasını ayrıca değerlendirin; yalnız HTTPS kullanılması bu riski otomatik kaldırmaz.
 

Sende şimdi bize katılmak ister misin?

Kayıt ol

Bize katılım kolay ve ücretsizdir!

Konuyu görüntüleyenler

Bu konuyu şu anda görüntüleyen üye bulunmuyor.
Robotlar:
  • Anthropic