1. Gzip Sıkıştırma ile Trafiği Hızlandırın
Web sitenizden daha hızlı veri iletmek istiyorsanız, Gzip sıkıştırması kullanmak harika bir yöntemdir. Gzip, sayfalarınızın boyutunu önemli ölçüde küçültür, böylece hem sunucunuz hem de kullanıcılar daha hızlı yükleme sürelerine sahip olur.
gzip on;
gzip_vary on;
gzip_proxied any;
gzip_comp_level 6;
gzip_types text/plain application/javascript text/css application/json application/xml text/javascript;
```
Bu yapılandırma ile, sıkıştırma etkinleştirilir ve belirlediğiniz dosya türleri üzerinde uygulanır. Bu sayede, sayfa yükleme sürelerinde belirgin bir hız artışı gözlemleyebilirsiniz.
2. Önbellekleme (Caching) Kullanımı
Nginx, önbellekleme özellikleriyle tanınır. Sayfalarınızı, veritabanı sorgularını ve diğer verileri önbelleğe alarak sunucunun yükünü hafifletebilir ve sayfa yükleme hızını artırabilirsiniz.
location ~* \.(jpg|jpeg|png|gif|css|js|pdf|woff|woff2)$ {
expires 30d;
add_header Cache-Control "public, no-transform";
}
```
Yukarıdaki örnekle, statik dosyaların 30 gün boyunca tarayıcıda önbelleğe alınması sağlanır. Bu, tekrar tekrar yüklenen sayfalarda önemli bir hız artışı sağlar.
3. Bağlantı Havuzlama (Connection Pooling)
Bağlantı havuzlama, veritabanı bağlantılarınızı daha verimli hale getirebilir ve yükleme sürelerini iyileştirebilir. Bu, özellikle veritabanı sorguları yoğun siteler için faydalıdır.
fastcgi_keep_conn on;
```
Bu konfigürasyon, FastCGI ile çalışan uygulamalar için bağlantıların korunmasını sağlar, böylece her istek için yeni bir bağlantı kurulmaz.
4. HTTP/2 Desteği
HTTP/2, özellikle modern tarayıcılar için hızlı yükleme süreleri sunar. Nginx, HTTP/2'yi destekler ve onu etkinleştirerek sayfalarınızın daha hızlı yüklenmesini sağlayabilirsiniz.
server {
listen 443 ssl http2;
...
}
```
HTTP/2, aynı anda birden fazla isteğin tek bir bağlantı üzerinden yapılmasını sağlar, bu da performansınızı önemli ölçüde artırır.
5. Sunucu Yanıt Süresini İyileştirme
Sunucunuzun yanıt süresi, site hızınızı doğrudan etkiler. Nginx, yanıt süresini optimize etmek için çeşitli ayarlara sahiptir. Özellikle, zaman aşımı sürelerini doğru ayarlamak oldukça önemlidir.
client_header_timeout 10s;
client_body_timeout 10s;
send_timeout 10s;
```
Bu konfigürasyon, istemciden gelen verilerin ve sunucudan gönderilen yanıtların zaman aşımına uğramasını engeller ve her şeyin daha hızlı gerçekleşmesini sağlar.
6. WebSocket Destekleyin
Gerçek zamanlı uygulamalar için WebSocket kullanımı, modern web sitelerinde sıklıkla tercih edilen bir özelliktir. Nginx, WebSocket bağlantıları için mükemmel destek sağlar.
location /socket/ {
proxy_pass http://localhost:8080;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
}
```
WebSocket ile gerçek zamanlı verilerin anında iletimi sağlanır, bu da özellikle interaktif uygulamalarda büyük hız kazançları sağlar.
7. SSL/TLS Performans Optimizasyonu
SSL/TLS şifrelemesi güvenli bir bağlantı sağlar ancak yanlış yapılandırıldığında performansı olumsuz etkileyebilir. Nginx'te doğru SSL/TLS yapılandırması, hız üzerinde ciddi iyileştirmeler yapabilir.
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers 'TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384';
ssl_prefer_server_ciphers off;
```
Bu yapılandırmalar, güvenliği sağlam tutarken bağlantılarınızın daha hızlı gerçekleşmesini sağlar.
8. Daha Az DNS Sorgusu İçin IP Adresi Tabanlı Bağlantılar
Web sitenizdeki DNS sorgularını azaltmak, hız üzerinde büyük bir etki yapabilir. Nginx, IP adreslerine dayalı bağlantılarla DNS sorgularını en aza indirebilir.
resolver 8.8.8.8 8.8.4.4 valid=300s;
```
Bu ayar, daha hızlı DNS çözümlemeleri yaparak sayfa yükleme sürelerini azaltır.
9. Daha Hızlı Static İçerik Teslimi
Statik içeriklerin hızlı teslimi, site hızını önemli ölçüde etkiler. Nginx ile, statik içeriklerin hızlıca sunulmasını sağlayabilirsiniz.
location /static/ {
root /var/www/html;
expires 1y;
access_log off;
}
```
Bu ayar, statik içerikleri hızlıca sunarak kullanıcılara daha hızlı bir deneyim sunar.
10. Yük Dengeleme ile Trafiği Dağıtma
Eğer birden fazla sunucuya sahipseniz, yük dengeleme ile trafiği dağıtarak web performansınızı iyileştirebilirsiniz. Nginx, yük dengeleme için mükemmel bir çözümdür.
upstream backend {
server backend1.example.com;
server backend2.example.com;
}
server {
location / {
proxy_pass http://backend;
}
}
```
Bu yapılandırma, iki farklı backend sunucusuna gelen istekleri dengeler ve böylece yük daha eşit bir şekilde dağıtılır.
### Sonuç olarak:
Bu 10 gelişmiş Nginx konfigürasyonu, web sitenizin hızını artırmak ve SEO performansınızı iyileştirmek için mükemmel araçlardır. Hangi yapılandırmanın ne zaman kullanılması gerektiğini doğru bir şekilde bilmek, size önemli avantajlar sağlayacaktır. Şimdi, bu önerileri uygulayarak sitenizin performansını artırmaya başlayabilirsiniz!