Web sitesi sahipleri ve geliştiriciler için hız, her şey demek! Eğer sayfanızın hızlı yüklenmesini istiyorsanız, bunu sağlamanın en etkili yollarından biri doğru sunucu yapılandırmasıdır. Nginx, hem yüksek performansı hem de esnekliği ile tercih edilen bir web sunucusudur. Ancak, çoğu zaman Nginx’in sunduğu tüm potansiyeli keşfetmek zor olabilir. Bu yazıda, web performansını optimize etmek için Nginx üzerinde uygulayabileceğiniz, belki de pek duymadığınız 10 güçlü ayarı keşfedeceğiz.
1. Önbellekleme (Caching) Ayarları ile Hız Artışı
Önbellekleme, web sayfanızın hızını ciddi şekilde artırabilir. Nginx, statik dosyaları, veritabanı sorgularını ve daha fazlasını önbelleğe alarak istemciye daha hızlı sunar. Aşağıdaki kodu Nginx konfigürasyonunuza ekleyerek, statik içerikler için etkin bir önbellekleme yapabilirsiniz.
location ~* \.(jpg|jpeg|png|gif|css|js|ico|webp|svg|ttf|woff|woff2)$ {
expires 30d;
add_header Cache-Control "public";
}Bu sayede tarayıcı, aynı içerikleri yeniden indirmenize gerek kalmadan hızlı bir şekilde sunacaktır.
2. GZIP Sıkıştırma ile Hızlı Veri İletişimi
GZIP sıkıştırması, web sayfanızın boyutunu küçültür ve veri iletimini hızlandırır. Bu basit ama etkili yöntem, özellikle metin tabanlı içerikler için oldukça faydalıdır. Nginx konfigürasyonunuza aşağıdaki satırı ekleyerek, GZIP sıkıştırmayı etkinleştirebilirsiniz:
gzip on;
gzip_types text/plain text/css application/javascript application/json;Bu, CSS, JavaScript ve JSON gibi dosyaların daha hızlı yüklenmesini sağlar.
3. HTTP/2 Protokolü ile Modern Web Teknolojisi
HTTP/2, daha hızlı web sayfası yüklemeleri için önemli bir protokoldür. Nginx’te HTTP/2’yi etkinleştirerek, birden fazla isteğin aynı anda yapılmasını sağlayabilirsiniz. Bu, sayfa yükleme sürelerini önemli ölçüde azaltabilir. Aşağıdaki satırı konfigürasyonunuza ekleyin:
listen 443 ssl http2;4. SSL Optimizasyonları
Güvenli bağlantılar, kullanıcı deneyimi için kritiktir. Ancak, SSL/TLS şifreleme işleminden dolayı performans kaybı yaşanabilir. Nginx üzerinde SSL optimizasyonları yaparak bu kaybı minimize edebilirsiniz. Aşağıdaki ayar, SSL bağlantılarınızı hızlandırabilir:
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 1d;
ssl_ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:...';
ssl_prefer_server_ciphers on;Bu ayarlarla, SSL oturumlarını cache'leyebilir ve şifreleme algoritmalarınızı optimize edebilirsiniz.
5. Reverse Proxy ve Load Balancing ile Yük Dengeleme
Yük dengeleme, yüksek trafikli siteler için kritik bir faktördür. Nginx’i reverse proxy olarak kullanarak, gelen istekleri birden fazla sunucuya yönlendirebilirsiniz. Bu sayede, sunucularınız arasında yükü eşit şekilde dağıtarak daha verimli bir sistem elde edebilirsiniz.
upstream backend {
server backend1.example.com;
server backend2.example.com;
}
location / {
proxy_pass http://backend;
}Bu, kullanıcıların taleplerini dengeli bir şekilde dağıtarak performansı artırır.
6. Timeout Ayarları ile Daha Hızlı İstekler
Nginx’in timeout ayarlarını doğru yapılandırarak, uzun süre bekleyen isteklerin engellenmesini sağlayabilirsiniz. Bu, web sunucusunun kaynaklarını verimli kullanarak, yanıt sürelerini kısaltır.
client_timeout 15s;
send_timeout 10s;
7. Request Limiting ile Sunucu Koruması
DDoS saldırılarına karşı korunmak ve sunucu kaynaklarını korumak için istek sınırlama kullanabilirsiniz. Nginx ile belirli IP adreslerine yönelik istek sayısını sınırlayarak, kötü amaçlı trafiği engelleyebilirsiniz.
limit_req_zone $binary_remote_addr zone=mylimit:10m rate=10r/s;
limit_req zone=mylimit burst=20;Bu ayar, saniyede yalnızca 10 istek yapılmasına izin verir.
8. DNS Prefetching ile Bağlantı Hızlandırma
DNS prefetching, tarayıcıya, gelecekte ziyaret edilecek alan adlarını önceden çözümleyerek sayfa yükleme süresini hızlandırma imkanı verir. Nginx konfigürasyonunuza şu satırı ekleyebilirsiniz:
add_header X-DNS-Prefetch-Control "on";Bu basit işlemle, sayfanızın gelecekteki bağlantılarını daha hızlı kurabilirsiniz.
9. Static Asset Compression ile Dosya Boyutunu Küçültme
Özellikle büyük CSS ve JavaScript dosyalarının sıkıştırılması, sayfa hızını artırır. Nginx üzerinde sıkıştırma ayarlarını yapmak, dosya boyutlarını küçültür ve sayfanın hızlı yüklenmesini sağlar.
gzip_static on;Bu, sıkıştırılmış dosyaların doğrudan sunulmasını sağlar.
10. Log Düzeyini Düşürme
Sunucu logları, performans üzerinde olumsuz etki yaratabilir. Gereksiz log yazılmalarını engelleyerek disk alanını ve işlem gücünü koruyabilirsiniz. Aşağıdaki ayar, log seviyesini düşürmenize yardımcı olabilir:
access_log off;