Nginx, modern web altyapısının vazgeçilmezidir: tek başına web server, reverse proxy, load balancer, cache ve TLS terminator olarak çalışır. Bu rehber sunucu yöneticileri için Nginx''in en kritik konfigürasyon modellerini — reverse proxy, FastCGI ve proxy cache, rate limit, gzip ve HTTP/2 — üretim sunucusunda kullanıldığı haliyle örneklerle açıklar.

Temel Dosya Yapısı

İlgili rehberler: DNS nedir, ayarları değiştirme · Domain adı ve WHOIS sorgulama · Hosting türleri rehberi · Plesk panel yönetimi · Web hosting fiyat karşılaştırma

Nginx konfigürasyonu genellikle /etc/nginx/ altındadır. Ana giriş noktası nginx.conf; site bazlı ayarlar sites-available/''de tutulup sites-enabled/''a symlink atılır. Her değişiklik sonrası nginx -t && systemctl reload nginx zorunlu.

# /etc/nginx/nginx.conf — temel ayarlar
worker_processes auto;
worker_rlimit_nofile 65535;
events { worker_connections 4096; multi_accept on; }

http {
    sendfile on;
    tcp_nopush on;
    tcp_nodelay on;
    keepalive_timeout 30s;
    keepalive_requests 100;
    types_hash_max_size 2048;
    server_tokens off;

    gzip on;
    gzip_vary on;
    gzip_comp_level 5;
    gzip_min_length 1024;
    gzip_types text/plain text/css application/javascript application/json image/svg+xml;
}

Reverse Proxy Yapılandırması

Node.js, Python veya Java backend''lerinin önüne nginx koyarak SSL terminasyonu, caching, gzip ve access log kontrolü elde edersiniz. Backend uygulaması genellikle 127.0.0.1:3000 gibi localhost port''unda dinler; nginx dış dünyadan gelen trafiği bu porta iletir.

server {
    listen 443 ssl http2;
    server_name example.com;

    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;

    location / {
        proxy_pass http://127.0.0.1:3000;
        proxy_http_version 1.1;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
}

FastCGI Cache (PHP için)

WordPress gibi PHP uygulamalarında her istek için PHP-FPM''i tetiklemek israftır. FastCGI cache ile sayfa çıktısı nginx tarafında saklanır; sonraki isteklere PHP''yi hiç çağırmadan cevap verilir. Yük 10 kat düşer.

# http { } bloğuna eklenir
fastcgi_cache_path /var/cache/nginx/fastcgi levels=1:2
    keys_zone=WORDPRESS:100m inactive=60m max_size=1g;
fastcgi_cache_key "$scheme$request_method$host$request_uri";

# server { } bloğuna eklenir
set $skip_cache 0;
if ($request_method = POST) { set $skip_cache 1; }
if ($query_string != "") { set $skip_cache 1; }
if ($request_uri ~* "/wp-admin/|/xmlrpc.php|wp-.*.php|/feed/") { set $skip_cache 1; }
if ($http_cookie ~* "comment_author|wordpress_logged_in|wp-postpass") { set $skip_cache 1; }

location ~ \.php$ {
    fastcgi_cache WORDPRESS;
    fastcgi_cache_valid 200 60m;
    fastcgi_cache_bypass $skip_cache;
    fastcgi_no_cache $skip_cache;
    fastcgi_pass unix:/run/php/php8.2-fpm.sock;
    include fastcgi_params;
    add_header X-Cache-Status $upstream_cache_status;
}

Proxy Cache (Upstream API için)

Backend''inizin önünde 5-60 saniyelik bir cache katmanı kurarak yavaş API endpoint''lerini hızlandırabilirsiniz. Özellikle static içerik benzeri uzun süre değişmeyen cevaplar için ideal.

proxy_cache_path /var/cache/nginx/proxy levels=1:2 keys_zone=APICACHE:50m max_size=500m inactive=30m;

location /api/ {
    proxy_cache APICACHE;
    proxy_cache_valid 200 30s;
    proxy_cache_use_stale error timeout updating http_500 http_502 http_503 http_504;
    proxy_cache_lock on;
    proxy_pass http://127.0.0.1:3000;
    add_header X-Proxy-Cache $upstream_cache_status;
}

Rate Limiting

DDoS ve brute force saldırılarına karşı ilk hat savunma. limit_req_zone IP başına istek hızını sınırlar, limit_conn_zone eşzamanlı bağlantıyı sınırlar.

# http { } bloğuna
limit_req_zone $binary_remote_addr zone=global:10m rate=15r/s;
limit_req_zone $binary_remote_addr zone=login:10m rate=2r/s;
limit_conn_zone $binary_remote_addr zone=addr:10m;

# server { } bloğuna
limit_conn addr 50;
limit_req zone=global burst=30 nodelay;

location /login {
    limit_req zone=login burst=3 nodelay;
    proxy_pass http://127.0.0.1:3000;
}
Uyarı
burst değeri aşıldığında nginx varsayılan olarak 503 döner. Daha uygun bir statü için limit_req_status 429; ekleyin.

HTTP/2 ve HTTP/3

HTTP/2 için listen 443 ssl http2; yeterlidir. HTTP/3 (QUIC) için nginx 1.25+ gerekir ve listen 443 quic reuseport; eklenir. HTTP/3, mobil bağlantılarda paket kaybı olduğunda önemli performans kazancı sağlar.

Güvenlik Başlıkları

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;
add_header Referrer-Policy "strict-origin-when-cross-origin" always;
add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;

Yaygın Hatalar

  • server_name yanlış yazılmış — site açılmaz
  • SSL dosya yolları hatalı — nginx başlamaz
  • worker_connections çok düşük — yüksek trafik altında connection refused
  • client_max_body_size küçük — file upload 413 hatası
  • proxy_read_timeout kısa — uzun işlemlerde 504

Modern Web Hosting ve Sunucu Altyapısı

Performanslı bir web hosting hizmeti üç temel altyapı kararına dayanır: NVMe SSD diskler (klasik SATA SSD'ye göre 4-6 kat IOPS), LiteSpeed Web Server veya Nginx + LSCache kombinasyonu (Apache'ye göre 9 kat istek kapasitesi) ve CloudLinux + Imunify360 izolasyonu. Hosting sağlayıcısının kontrol paneli (cPanel, Plesk, DirectAdmin), günlük yedek politikası, veri merkezi konumu ve destek ekibi yanıt süresi de büyük fark yaratır. Türkiye lokasyonu yerli ziyaretçilere düşük gecikme verirken; Hetzner Frankfurt veya OVH Roubaix gibi Avrupa lokasyonları global trafik için daha uygundur. Site büyüdükçe paylaşımlı hosting'ten VPS, ardından dedicated server'a geçiş; CPU/RAM/disk kaynaklarının web sitemizin ihtiyaçlarına göre ölçeklenmesini sağlar.

Nginx optimizasyonu için destek alın

Trafik profilinize özel nginx yapılandırması, cache stratejisi ve güvenlik sertleştirme için iletişime geçin

WhatsApp