Nginx ile Statik Dosya Hızlandırma: Sunucunuzu Roket Gibi Yapın! ⚡

pixero

Üye
Katılım
14 Mart 2026
Mesajlar
2
Nginx ile Statik Dosya Hızlandırma: Sunucunuzu Roket Gibi Yapın! ⚡

Selam sistemciler! 🐧 Bugün, özellikle görsel, CSS ve JavaScript dosyaları ağırlıklı sitelerde can simidi olacak bir konuya değiniyoruz: Nginx ile statik dosya performansını uçurmak! Kullanıcı deneyimi ve SEO için sayfa yükleme hızı kritiktir. Gelin, terminalin tozunu alıp bu basit ama etkili ayarlarla sunucunuzu hızlandıralım.

Neden Statik Dosyaları Optimize Etmeliyiz?

Statik dosyalar (resimler, ikonlar, stil dosyaları, scriptler) genellikle bir sayfanın boyutunun büyük kısmını oluşturur. Bunları verimli bir şekilde sunmak:
  • Sayfa yükleme sürelerini ciddi oranda düşürür.
  • Sunucu yükünü ve bant genişliği tüketimini azaltır.
  • Arama motoru sıralamalarında olumlu etki yaratır.
  • Kullanıcı memnuniyetini artırır.

1. Gzip Sıkıştırmayı Etkinleştirin 🗜️

Metin tabanlı dosyaları (CSS, JS, HTML) sunmadan önce sıkıştırmak, boyutlarını %70'e varan oranda azaltabilir. Nginx'te `gzip` ayarlarını kontrol edin veya ekleyin. Genellikle `/etc/nginx/nginx.conf` dosyasının `http` bloğunda bulunur.

NGINX:
http {
    # Gzip sıkıştırmayı aç
    gzip on;
    gzip_vary on;
    gzip_min_length 1024; # 1KB'den küçük dosyaları sıkıştırma
    gzip_proxied any;
    gzip_comp_level 6; # Sıkıştırma seviyesi (1-9, 6 iyi bir dengedir)
    gzip_types
        text/plain
        text/css
        text/xml
        text/javascript
        application/javascript
        application/json
        application/xml+rss
        image/svg+xml;
    gzip_disable "msie6"; # Eski IE6 için kapat
}

2. Tarayıcı Önbelleğini (Browser Cache) Yapılandırın 💾

Kullanıcının tarayıcısının dosyaları yerel olarak saklamasına izin verin. Bu, ziyaretçi aynı siteye tekrar geldiğinde dosyaların sunucudan tekrar indirilmesini engeller. Bu ayarları genellikle site konfigürasyonunuzda (`/etc/nginx/sites-available/siteniz`) `location` bloğu içinde yaparsınız.

NGINX:
location ~* \.(jpg|jpeg|png|gif|ico|css|js|svg|woff|woff2|ttf|eot)$ {
    expires 365d; # Dosyaları 1 yıl boyunca önbellekte tut
    add_header Cache-Control "public, immutable";
    # Dosya değişirse, isminin (query string veya versioning) değişmesi gerekir.
}

3. Dosya Önbelleği (Proxy Cache) ile Sunucu Yükünü Düşürün 🚀

Eğer bir ön uç proxy (Varnish gibi) kullanmıyorsanız, Nginx'in kendi önbellek mekanizmasını kullanabilirsiniz. Bu, statik dosyaları diskte önbellekleyerek aynı dosya için tekrar tekrar işlem yapılmasını engeller. `http` bloğuna bir önbellek yolu tanımlayın.

NGINX:
http {
    # Önbellek ayarları
    proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=STATIC:10m inactive=7d max_size=1g use_temp_path=off;
}

Ardından, statik dosya `location` bloğunuzda bu önbelleği kullanın.

NGINX:
location ~* \.(jpg|jpeg|png|gif|ico|css|js|svg|woff|woff2|ttf|eot)$ {
    expires 365d;
    add_header Cache-Control "public, immutable";

    # Proxy Cache ekle
    proxy_cache STATIC;
    proxy_cache_valid 200 302 7d; # Başarılı yanıtları 7 gün önbellekle
    proxy_cache_valid 404 1m;     # 404 hatalarını 1 dakika önbellekle
    add_header X-Cache-Status $upstream_cache_status; # Önbellek durumunu header'da göster (debug için)
}

4. Sendfile ve TCP_NOPUSH ile Veri Transferini Optimize Edin ⚙️

Bu direktifler, dosyaları daha verimli bir şekilde göndermek için işletim sistemi seviyesindeki optimizasyonları kullanır.

NGINX:
http {
    sendfile on; # Dosya okuma/yazma işlemlerini kernel seviyesinde yap
    tcp_nopush on; # Paketleri daha verimli doldurarak gönder (sendfile on ile birlikte kullanılır)
    tcp_nodelay on; # Küçük paketlerin gecikmesini önle (keepalive bağlantılarında önemli)
}

Değişiklikleri Test Edin ve Uygulayın 🖥️

Herhangi bir Nginx konfigürasyon değişikliğinden sonra mutlaka sözdizimini kontrol edin:

Bash:
sudo nginx -t

Eğer "syntax is ok" mesajını alırsanız, Nginx'i yeniden başlatın:

Bash:
sudo systemctl reload nginx  # veya sudo service nginx reload

Son Kontroller ve Araçlar 🛡️

Ayarlarınızın etkisini ölçmek için Google PageSpeed Insights, GTmetrix veya WebPageTest gibi araçları kullanın. "Leverage browser caching" ve "Enable compression" uyarılarının kaybolduğunu göreceksiniz.

İşte bu kadar! Birkaç basit konfigürasyonla sunucunuzun statik içerik sunma performansını ciddi oranda artırabilirsiniz. 🎯

Peki sizin favori Nginx performans hileleriniz neler? Özellikle yüksek trafikli ortamlarda hangi ayarlar sizin için vazgeçilmez oldu? Yorumlarda deneyimlerinizi paylaşın, tartışalım!
 

Tema özelleştirme sistemi

Bu menüden forum temasının bazı alanlarını kendinize özel olarak düzenleye bilirsiniz.

Zevkine göre renk kombinasyonunu belirle

Tam ekran yada dar ekran

Temanızın gövde büyüklüğünü sevkiniz, ihtiyacınıza göre dar yada geniş olarak kulana bilirsiniz.

Geri