Foruma hoş geldin 👋, Ziyaretçi

Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı ya da giriş yapmalısınız. Foruma üye olmak tamamen ücretsizdir.

Nginx'te Gzip Sıkıştırmasını Etkinleştirme ve CSS, JS, HTML Dosyaları için Optimize Etme

byteon

Üye
Katılım
14 Mart 2026
Mesajlar
35
Merhaba arkadaşlar, bugün sizlere web sunucunuzun performansını gözle görülür şekilde artıracak, basit ama çok etkili bir optimizasyondan bahsedeceğim: Nginx'te Gzip sıkıştırması. Özellikle CSS, JavaScript ve HTML gibi metin tabanlı dosyalarınızı sıkıştırarak, kullanıcılarınıza çok daha hızlı bir site deneyimi sunabilirsiniz. Bu, hem kullanıcı memnuniyetini hem de SEO puanlarınızı olumlu etkiler. Benim yönettiğim tüm sunucularda ilk yaptığım ayarlardan biridir.

📚 Gzip Sıkıştırması Nedir?

Gzip, web sunucusu ile tarayıcı arasında gönderilen içeriği sıkıştırmak için kullanılan bir yöntemdir. Sunucu dosyayı sıkıştırır, tarayıcı ise aldığı bu sıkıştırılmış paketi açar ve gösterir. Bu sayede ağ üzerinden çok daha az veri transferi olur, sayfa yüklenme süreleri kısalır. CSS, JS, HTML, XML ve JSON gibi dosyalar bu sıkıştırmadan en yüksek verimi alır.

⚙️ Nginx'te Gzip'i Etkinleştirme

Nginx'te Gzip varsayılan olarak kapalı gelebilir. Ayarları yapılandırmak için ana Nginx konfigürasyon dosyasını veya ilgili site konfigürasyon dosyasını (örneğin /etc/nginx/sites-available/siteniz.com) düzenlememiz gerekiyor. Ben genelde tüm siteleri etkilemesi için ana konfigürasyon dosyasını tercih ederim.

Öncelikle, düzenleyeceğimiz dosyayı bir metin editörüyle (nano veya vim) açalım.

Bash:
sudo nano /etc/nginx/nginx.conf

Dosya içinde `http {` bloğunu bulun. Bu blok içine aşağıdaki Gzip ayarlarını ekleyelim. Eğer zaten bazı Gzip satırları varsa, onları aşağıdakilerle değiştirebilir veya düzenleyebilirsiniz.

NGINX:
http {
    # Gzip Sıkıştırma Ayarları
    gzip on;
    gzip_vary on;
    gzip_proxied any;
    gzip_comp_level 6;
    gzip_types text/plain text/css text/xml text/javascript application/json application/javascript application/xml+rss application/xhtml+xml image/svg+xml;
    gzip_min_length 1024;
    gzip_disable "msie6";
}

Şimdi bu ayarların ne anlama geldiğine kısaca bakalım:
- gzip on;: Gzip sıkıştırmasını açar.
- gzip_vary on;: Tarayıcıya "Vary: Accept-Encoding" başlığını gönderir, bu da önbellekleme (cache) için önemlidir.
- gzip_proxied any;: Ters proxy'den gelen istekler de dahil olmak üzere her türlü yanıtı sıkıştırmaya çalışır.
- gzip_comp_level 6;: Sıkıştırma seviyesi (1-9 arası). 6, performans ve sıkıştırma oranı arasında iyi bir dengedir. Ben genelde 6 kullanırım.
- gzip_types: Hangi MIME türündeki dosyaların sıkıştırılacağını belirtir. Yukarıda CSS, JS, HTML, XML, JSON ve SVG'yi ekledim.
- gzip_min_length 1024;: Sadece 1 kilobyte (1024 byte) ve üzerindeki dosyaları sıkıştırır. Çok küçük dosyaları sıkıştırmak gereksiz iş yükü getirebilir.
- gzip_disable "msie6";: Artık neredeyse kullanılmayan Internet Explorer 6 için Gzip'i devre dışı bırakır.

🔍 Ayarları Test Etme ve Nginx'i Yeniden Başlatma

Ayarları kaydettikten sonra, önce Nginx konfigürasyon dosyalarımızda bir sözdizimi hatası olmadığını kontrol etmeliyiz.

Bash:
sudo nginx -t

Eğer her şey yolundaysa ve "syntax is ok" mesajını görürseniz, Nginx servisini yeniden başlatabilirsiniz.

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

⚠️ Dikkat Edilmesi Gerekenler

1. Gereksiz Dosya Türlerini Eklemeyin: JPEG, PNG, GIF, PDF, WOFF2 gibi zaten sıkıştırılmış formatları `gzip_types` listesine eklemeyin. Bu, CPU kullanımını boş yere artırır ve boyutta neredeyse hiç değişiklik olmaz.
2. Sıkıştırma Seviyesi (comp_level): 9 seviyesi en yüksek sıkıştırmayı sağlar ancak CPU'yu çok daha fazla yorar. 6 veya 7 seviyesi genellikle en idealidir.
3. Önbellekleme (Caching): Gzip ile birlikte doğru önbellekleme başlıklarını (Cache-Control) da ayarlamayı unutmayın. Sıkıştırılmış içeriğin önbelleğe alınması performansı katlar.

✅ Sıkıştırmanın Çalıştığını Nasıl Doğrularım?

Tarayıcınızın Geliştirici Araçları'nı (F12) açın, "Network" sekmesine gidin ve sitenizi yenileyin. CSS veya JS dosyalarından birine tıklayın. "Response Headers" kısmında `Content-Encoding: gzip` ifadesini görüyorsanız, sıkıştırma başarıyla çalışıyor demektir.

Ayrıca terminalden curl komutu ile de test edebilirsiniz:

Bash:
curl -H "Accept-Encoding: gzip" -I http://siteniz.com/style.css

Yanıt başlıklarında `Content-Encoding: gzip` satırını arayın.

İşte bu kadar arkadaşlar! Bu basit ayar, özellikle mobil kullanıcılar ve düşük hızlı internet bağlantıları için sitenizin hızını müthiş etkileyecek. Siz bu konfigürasyonu kendi sunucularınızda nasıl yapıyorsunuz? Farklı bir `gzip_types` listesi veya önerdiğiniz bir `gzip_comp_level` değeriniz var mı? Aklınıza takılan bir şey olursa aşağıya yazmaktan çekinmeyin, beraber çözelim.
 

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