Bu yazımızda, web sitenizin hızını artırmak için kullanabileceğiniz 10 sıra dışı Nginx konfigürasyonunu detaylı bir şekilde inceleyeceğiz. Hazırsanız, hemen başlayalım!
1. HTTP/2 Özelliğini Etkinleştirme ve Performans Artışı
Nginx üzerinde HTTP/2'yi etkinleştirmek için şu basit adımları izleyebilirsiniz:
kopyalaserver { listen 443 ssl http2; server_name example.com; ssl_certificate /path/to/certificate.crt; ssl_certificate_key /path/to/private.key; ... }
Bu basit değişiklik, sayfa yükleme süresinde önemli bir iyileşme sağlayacaktır.
2. Gzip ve Brotli Sıkıştırma Kullanımı
Nginx'te Gzip sıkıştırmasını etkinleştirmek için şu kodu kullanabilirsiniz:
kopyalagzip on; gzip_types text/plain text/css application/javascript; gzip_comp_level 6;
Brotli sıkıştırması ise daha modern ve genellikle daha verimlidir. Brotli'yi Nginx üzerinde kullanmak için gerekli modülü yüklemeniz gerekir, ardından şu ayarları yapabilirsiniz:
kopyalabrotli on; brotli_static on; brotli_types text/plain text/css application/javascript;
3. Reverse Proxy Kullanımında Performans İyileştirmeleri
Nginx ile ters proxy kullanırken, doğru yapılandırma ile performansı optimize edebilirsiniz. İşte örnek bir yapılandırma:
kopyalalocation / { proxy_pass http://backend_server; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; }
Bu yapılandırma, istemci isteklerini düzgün şekilde arka uç sunucularına iletmek için gereklidir.
4. Nginx Cache Yönetimi ile Sunucu Yükünü Azaltma
Örneğin, statik dosyalar için cache süresi ayarlamak için şu yapılandırmayı kullanabilirsiniz:
kopyalalocation ~* \.(jpg|jpeg|png|gif|css|js|woff|woff2|ttf)$ { expires 30d; add_header Cache-Control "public"; }
Bu kod, görseller ve stil dosyaları gibi statik içerikler için 30 günlük cache süresi belirler.
5. SSL/TLS Performans İyileştirmeleri
Nginx’te SSL/TLS için performans optimizasyonu yapmak için şu ayarları kullanabilirsiniz:
kopyalassl_session_cache shared:SSL:10m; ssl_session_timeout 1d; ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers 'TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384';
Bu ayarlar, SSL oturumlarını hızlıca başlatmanızı sağlar ve daha güvenli bağlantılar oluşturur.
6. Statik Dosyalar İçin Optimize Edilmiş Cache Süreleri
Aşağıdaki kod, Nginx’in statik dosyalar için 1 yıl boyunca cache tutmasını sağlar:
kopyalalocation ~* \.(jpg|jpeg|png|gif|css|js|woff|woff2|ttf)$ { expires 365d; add_header Cache-Control "public"; }
7. Rate Limiting ve DDoS Koruması ile Web Sitenizi Güçlendirme
Nginx’te basit bir rate limiting yapılandırması şu şekilde olabilir:
kopyalalimit_req_zone $binary_remote_addr zone=mylimit:10m rate=1r/s; server { location / { limit_req zone=mylimit burst=5; } }
Bu ayar, belirli bir IP adresinden saniyede yalnızca bir istek kabul eder ve aniden gelen fazla talepleri sınırlayarak web sitenizi korur.
8. Nginx ve CDN Entegrasyonu ile Daha Hızlı Yükleme Süreleri
Nginx'te CDN kullanmak için şu basit yapılandırmayı kullanabilirsiniz:
kopyalalocation / { proxy_pass http://cdn.example.com; }
Bu, web sitenizin içeriklerini CDN sunucusuna yönlendirecek ve daha hızlı yükleme süreleri elde etmenizi sağlayacaktır.
9. Favicon, Çerezler ve Diğer Küçük Dosyaların Yönetimi
Örneğin, favicon için cache süresi belirlemek şu şekilde yapılabilir:
kopyalalocation = /favicon.ico { expires 365d; }
10. Web Siteniz İçin İleri Düzey Nginx Güvenlik Ayarları
Güvenliği artırmak için şu ayarları yapabilirsiniz:
kopyalaserver { add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always; add_header X-Content-Type-Options "nosniff" always; add_header X-Frame-Options "SAMEORIGIN" always; }
Bu ayarlar, web sitenizi potansiyel saldırılara karşı korur ve kullanıcı verilerini güvenli tutar.