Nginx Gzip ve Brotli Konfigürasyonu

Nginx Gzip ve Brotli Konfigürasyonu

Nginx gzip ve brotli konfigürasyonu, web sitenizin performansını artırmanın ve daha hızlı yükleme süreleri sağlamanın etkili yollarından biridir. Özellikle modern web geliştirme süreçlerinde dosya sıkıştırma teknikleri, bant genişliği kullanımını azaltırken, kullanıcı deneyimini iyileştirir. Bu makalede, Ubuntu 20.04 üzerine Nginx kurulumunun ardından gzip ve brotli sıkıştırma ayarlarını nasıl yapacağınızı detaylı olarak ele alacağız. Dosya yolları ve gerekli komutlar da dahil olmak üzere adım adım rehber sunacağız.

Gzip Nedir?

Gzip, Nginx ile birlikte gelen ve oldukça yaygın olarak kullanılan bir sıkıştırma algoritmasıdır. Web sayfalarınızın ve CSS, JS gibi dosyalarınızın boyutlarını küçülterek, daha hızlı yüklenmelerine yardımcı olur. Sunucu tarafında sıkıştırılan dosyalar, tarayıcı tarafından açılır ve böylece verimli bir veri transferi sağlanır.

Brotli Nedir?

Google tarafından geliştirilen bir sıkıştırma algoritmasıdır ve gzip’e göre daha yeni ve etkili bir teknolojidir. Brotli, özellikle statik içeriklerin sıkıştırılması için idealdir ve gzip’e kıyasla daha iyi sıkıştırma oranları sunar. Ancak her tarayıcı Brotli desteği sunmadığı için, genellikle gzip ile birlikte kullanılması önerilir.

Adım Adım Gzip ve Brotli Ayarları

1. Ubuntu 20.04 Üzerine Nginx Kurulumu

İlk olarak, Nginx web sunucusunu kurmamız gerekiyor. Bunun için terminal üzerinden aşağıdaki adımları izleyin:

sudo apt update
sudo apt install nginx

Nginx kurulumunu tamamladıktan sonra, servisin düzgün çalıştığını kontrol edin:

sudo systemctl status nginx

Eğer Nginx doğru şekilde çalışıyorsa, bir sonraki adıma geçebiliriz.

2. Gzip Sıkıştırma Ayarları

Gzip sıkıştırma özelliğini aktif hale getirmek için Nginx konfigürasyon dosyasında bazı değişiklikler yapmamız gerekecek. Nginx’in ana konfigürasyon dosyasını açalım:

sudo nano /etc/nginx/nginx.conf

Bu dosyada aşağıdaki gzip ayarlarını ekleyin veya var olanları düzenleyin:

gzip on;
gzip_vary on;
gzip_comp_level 6;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
gzip_min_length 256;
gzip_proxied any;

Açıklamalarıyla birlikte bu ayarların ne anlama geldiğini inceleyelim:

  • gzip on; – Gzip sıkıştırmasını etkinleştirir.
  • gzip_vary on; – Proxy sunucuların sıkıştırma durumunu kontrol etmesini sağlar.
  • gzip_comp_level 6; – Sıkıştırma seviyesini ayarlar. 1 ile 9 arasında bir değer alabilir. 6 genellikle iyi bir denge sağlar.
  • gzip_types – Hangi dosya türlerinin sıkıştırılacağını belirtir. CSS, JSON, JavaScript gibi dosyalar gzip ile sıkıştırılacaktır.
  • gzip_min_length 256; – 256 byte’tan büyük dosyaların sıkıştırılacağını belirtir. Küçük dosyalar sıkıştırma için fazla küçük olabilir ve zaman kazancı sağlamayabilir.
  • gzip_proxied any; – Proxy sunucular üzerinden gelen isteklerde gzip kullanılmasını sağlar.

Bu değişiklikleri yaptıktan sonra dosyayı kaydedin ve çıkın. Ardından, Nginx ayarlarını test edin ve yeniden başlatın:

sudo nginx -t
sudo systemctl restart nginx

Bu adımlar, gzip sıkıştırmasını etkinleştirmenizi sağlar. Şimdi ise Brotli ayarlarını yapacağız.

3. Brotli Sıkıştırma Ayarları

Brotli, varsayılan olarak Nginx’te yer almamaktadır. Bu nedenle Brotli desteğini manuel olarak eklememiz gerekecek. Brotli modülünü eklemek için, Nginx’i kaynak koddan derleyerek Brotli modülünü ekleyebilirsiniz. Ancak en kolay yöntemlerden biri mevcut Brotli modülünü yüklemektir.

Brotli modülünü yüklemek için öncelikle gerekli modülleri ve Brotli’yi kurun:

sudo apt install libnginx-mod-brotli

Yükleme tamamlandıktan sonra Brotli’yi Nginx konfigürasyon dosyasına ekleyeceğiz. Yine nginx.conf dosyasını düzenleyelim:

sudo nano /etc/nginx/nginx.conf

Dosyanın içinde aşağıdaki Brotli ayarlarını ekleyin:

brotli on;
brotli_comp_level 6;
brotli_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;

Bu ayarlar Brotli sıkıştırmasını etkinleştirir ve gzip ile benzer bir yapı kullanır. Sıkıştırma seviyesini Brotli için de 6 olarak ayarlıyoruz, bu dengeleyici bir sıkıştırma oranıdır. brotli_types kısmı, sıkıştırılacak dosya türlerini belirtir.

Yine değişiklikleri kaydettikten sonra Nginx ayarlarını test edin ve yeniden başlatın:

sudo nginx -t
sudo systemctl restart nginx

4. Gzip ve Brotli’nin Birlikte Çalışması

Hem gzip hem de Brotli aynı anda etkinleştirildiğinde, tarayıcı öncelikle Brotli sıkıştırmasını tercih eder. Eğer tarayıcı Brotli’yi desteklemiyorsa, gzip sıkıştırması devreye girer. Bu sayede hem eski tarayıcılar hem de modern tarayıcılar için en iyi sıkıştırma yöntemi kullanılmış olur.

5. Gzip ve Brotli Performansını Test Etmek

Sıkıştırmanın başarılı olup olmadığını görmek için çeşitli araçları kullanabilirsiniz. Aşağıdaki curl komutu ile sıkıştırmayı kontrol edebilirsiniz:

curl -H "Accept-Encoding: br" -I https://example.com

Bu komut, Brotli sıkıştırması uygulanmışsa Content-Encoding: br sonucunu verecektir. Benzer şekilde gzip sıkıştırmasını kontrol etmek için:

curl -H "Accept-Encoding: gzip" -I https://example.com

Bu komut, Content-Encoding: gzip sonucunu vermelidir.

6. Nginx Cache Konfigürasyonu ile Sıkıştırmayı Desteklemek

Gzip ve Brotli sıkıştırma yöntemleri, Nginx üzerinde verimliliği artıran önemli yapı taşlarıdır. Ancak sıkıştırma işlemleri tek başına yeterli değildir. Sıkıştırmanın yanında bir Nginx cache konfigürasyonu uygulamak, sıkıştırılmış verilerin yeniden kullanılması ve sunucu üzerindeki yükün daha da azaltılması için gereklidir. Gzip ve Brotli ile sıkıştırılmış dosyalar, Nginx cache ile birlikte çalışarak sitenizin performansını daha da yükseltebilir.

Nginx üzerinde cache (önbellek) yapılandırması yapıldığında, sunucuya gelen tekrar eden istekler daha hızlı yanıtlanabilir. Bu, özellikle sıkıştırılmış içeriklerin tekrar tekrar sıkıştırılmadan, önbellekten çekilerek hızlıca sunulması anlamına gelir. Gzip ve Brotli gibi sıkıştırma yöntemleri ile birlikte Nginx cache kullanmak, verilerin daha hızlı sunulmasını ve bant genişliği tasarrufunu artırır.

Nginx üzerinde cache yapılandırması yapmak için öncelikle proxy_cache direktifini kullanarak önbelleği etkinleştirmeniz gerekir. Bunun için Nginx konfigürasyon dosyasına aşağıdaki satırları ekleyebilirsiniz:

proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m max_size=1g inactive=60m use_temp_path=off;
proxy_cache_key "$scheme$request_method$host$request_uri";

Bu ayarlar, /var/cache/nginx dizininde bir önbellek oluşturur ve maksimum 1 GB boyutuna kadar verileri depolar. Sıkıştırılmış içeriklerin de önbelleğe alınması için Nginx konfigürasyon dosyanızın ilgili bloğuna aşağıdaki satırları ekleyebilirsiniz:

location / {
proxy_cache my_cache;
proxy_pass http://backend;
gzip on;
brotli on;
}

Burada gzip ve brotli sıkıştırması aktif hale getirilirken, aynı zamanda sıkıştırılmış içerikler Nginx cache aracılığıyla saklanır ve tekrar eden isteklerde sunucuya yük bindirilmeden hızlı bir şekilde kullanıcıya sunulur.

Gzip, Brotli ve Nginx Cache’in Birlikte Çalışması

Gzip, Brotli ve Nginx cache bir araya getirildiğinde, sitenizin performansını optimize eden bir üçlü oluştururlar. İşte bu yapının nasıl birlikte çalıştığını ele alalım:

  1. Sıkıştırma Katmanı: Gzip veya Brotli sıkıştırması etkinleştirildiğinde, Nginx, sunucuya gelen isteklerin yanıtlarını sıkıştırarak gönderir. Bu işlem, daha az veri aktarımı sağlar ve sitenin yükleme süresini hızlandırır.
  2. Önbellekleme Katmanı: İlk istekte sıkıştırılan bu içerikler, Nginx cache’inde depolanır. Bir sonraki istekte, sıkıştırılmış içerik tekrar sıkıştırılmadan ve backend sunucusuna yük bindirilmeden önbellekten sunulur.
  3. Verimlilik Artışı: Bu yapı, özellikle trafiği yüksek olan sitelerde büyük bir verimlilik artışı sağlar. Sıkıştırma ve cache birlikte kullanıldığında, hem sunucu üzerindeki işlem yükü azalır hem de kullanıcı tarafında hız artışı gözlenir.

Gzip ve Brotli sıkıştırma yöntemleri, büyük dosyaları daha küçük hale getirirken, Nginx cache bu dosyaları saklayarak sunucuya yük bindirilmeden tekrar tekrar hızlıca sunulmasını sağlar. Özellikle statik dosyalar ve sık sık güncellenmeyen içerikler için Nginx cache konfigürasyonu, Gzip ve Brotli ile birlikte web sitenizin performansını ciddi oranda artırır.

Nginx Gzip ve Brotli konfigürasyonu ile birlikte Nginx cache konfigürasyonu uygulamak, web sitenizin performansını zirveye taşıyan bir stratejidir. Gzip ve Brotli sıkıştırması ile veri aktarım hızını artırırken, Nginx cache sayesinde sıkıştırılmış verilerin yeniden kullanılması sağlanır. Bu yapı, özellikle büyük dosya transferi yapan ve sık istek alan sitelerde ciddi bir performans artışı sağlar.

Nginx üzerinde bu optimizasyonları gerçekleştirmek, yalnızca sunucu üzerindeki yükü hafifletmekle kalmaz, aynı zamanda kullanıcıların daha hızlı bir deneyim yaşamasına olanak tanır. Gzip, Brotli ve Nginx cache’in bir arada çalışması, performans ve verimlilik açısından etkili ve modern bir çözüm sunar.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir