Blogchevron_rightSunucu Yönetimichevron_rightNginx Reverse Proxy ve Header Yönetimi Rehberi

Nginx Reverse Proxy ve Header Yönetimi Rehberi

S
Serversium
calendar_today27 Mayıs 2026
schedule5 dk okuma
Nginx Reverse Proxy ve Header Yönetimi Rehberi

Nginx ile Gelişmiş Reverse Proxy ve Header Yönetimi

Nginx, dünya genelinde en popüler web sunucularından biri olarak trafiğin %50'sinden fazlasını yönetmektedir. Reverse proxy olarak kullanıldığında, arka uç sunucularını korurken yük dengeleme, güvenlik ve performans optimizasyonu sağlar. Bu kapsamlı rehberde, Nginx ile gelişmiş reverse proxy yapılandırması ve header yönetimini detaylı olarak inceleyeceğiz.

Reverse Proxy Nedir ve Neden Kullanılır?

Reverse proxy, istemcilerden gelen istekleri alarak arka uç sunucularına ileten ve bu sunuculardan gelen yanıtları istemcilere geri döndüren bir sunucu türüdür. Geleneksel proxy'lerden farklı olarak, reverse proxy sunucu tarafında konumlanır ve birden fazla arka uç sunucusunu tek bir giriş noktasından yönetir.

Reverse proxy kullanımının temel avantajları şunlardır:

  • Yük dengeleme ile trafik dağılımı sağlar
  • Arka uç sunucularını doğrudan erişimden korur
  • SSL/TLS sonlandırma ile işlem yükünü azaltır
  • Önbellek (cache) mekanizması ile performansı artırır
  • Merkezi loglama ve izleme imkanı sunar

Nginx Reverse Proxy Temel Yapılandırması

Nginx'te reverse proxy yapılandırması, proxy_pass direktifi kullanılarak gerçekleştirilir. Aşağıda temel bir reverse proxy yapılandırması örneği bulunmaktadır:

server {
    listen 80;
    server_name example.com;

    location / {
        proxy_pass http://backend_server:8080;
        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;
    }
}

Bu yapılandırmada kritik olan proxy_set_header direktifi, istemci bilgilerinin arka uç sunucuya iletilmesini sağlar. Güvenlik duvarı yapılandırması ile birlikte kullanıldığında, sunucu güvenliği önemli ölçüde artırılabilir.

Gelişmiş Header Yönetimi

Header yönetimi, reverse proxy yapılandırmasının en kritik bileşenlerinden biridir. Doğru header yapılandırması, güvenlik, performans ve SEO açısından büyük önem taşır.

Temel Proxy Header'ları

Nginx'in proxy modülü, isteklerin arka uç sunucuya iletilmesi için çeşitli header'lar tanımlar. İşte en sık kullanılan header'lar:

Header Adı Açıklama Örnek Değer
Host İstek yapılan host adı $host veya $proxy_host
X-Real-IP İstemcinin gerçek IP adresi $remote_addr
X-Forwarded-For Tüm proxy zincirindeki IP'ler $proxy_add_x_forwarded_for
X-Forwarded-Proto İstek protokolü (http/https) $scheme
X-Forwarded-Host Orijinal host adı $host

Bu header'ların doğru yapılandırılması, arka uç uygulamalarının istemci bilgilerine erişimini sağlar ve güvenlik header'ları ile entegre çalışır.

X-Real-IP Header'ının Önemi

Arka uç sunucularında gerçek istemci IP'sini almak için X-Real-IP header'ı kritik öneme sahiptir. Özellikle DDoS koruması ve erişim log'ları için bu header mutlaka ayarlanmalıdır:

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_add_x_forwarded_for değişkeni, mevcut X-Forwarded-For değerine yeni IP'yi ekleyerek zincirleme proxy ortamlarında doğru IP izleme sağlar.

Güvenlik Header'ları ve Yönetimi

Nginx reverse proxy üzerinden güvenlik header'ları eklemek, web uygulamalarının güvenliğini önemli ölçüde artırır. Modern web güvenliği standartlarına uyum için aşağıdaki header'lar yapılandırılmalıdır.

Temel Güvenlik Header'ları

location / {
    proxy_pass http://backend:8080;
    
    # Güvenlik Header'ları
    add_header X-Frame-Options "SAMEORIGIN" always;
    add_header X-Content-Type-Options "nosniff" always;
    add_header X-XSS-Protection "1; mode=block" always;
    add_header Referrer-Policy "strict-origin-when-cross-origin" always;
    add_header Content-Security-Policy "default-src 'self' http: https: data: blob: 'unsafe-inline'" always;
    add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
}

Bu header'ların açıklamaları:

  • X-Frame-Options: Sayfaların iframe içinde görüntülenmesini kontrol eder, clickjacking saldırılarını önler
  • X-Content-Type-Options: MIME type sniffing'i engeller
  • X-XSS-Protection: Tarayıcı XSS filtrelerini etkinleştirir
  • Referrer-Policy: Referans bilgisi paylaşımını düzenler
  • Content-Security-Policy (CSP): Kaynak yükleme politikalarını belirler
  • Strict-Transport-Security (HSTS): Zorunlu HTTPS kullanımını sağlar

Bu yapılandırma, ISO 27001 belgeli altyapı üzerinde çalıştırıldığında, uyumluluk gereksinimlerini karşılamada kritik rol oynar.

CSP (Content Security Policy) Yapılandırması

CSP, XSS ve veri sızıntısı saldırılarına karşı en etkili koruma mekanizmalarından biridir. Detaylı CSP yapılandırması:

add_header Content-Security-Policy "
    default-src 'self';
    script-src 'self' 'unsafe-inline' 'unsafe-eval' https://cdn.example.com;
    style-src 'self' 'unsafe-inline' https://fonts.googleapis.com;
    font-src 'self' https://fonts.gstatic.com;
    img-src 'self' data: https:;
    connect-src 'self' https://api.example.com;
    frame-ancestors 'none';
" always;

CSP yapılandırırken, uygulamanızın ihtiyaç duyduğu kaynakları dikkatli bir şekilde beyaz listeye almanız gerekir. Yanlış yapılandırılmış CSP, sayfaların düzgün çalışmamasına neden olabilir.

Performance Header'ları ve Optimizasyon

Reverse proxy üzerinden performans optimizasyonu için çeşitli header'lar kullanılabilir. Bu header'lar, tarayıcı önbellek yönetimi ve kaynak yükleme stratejilerini optimize eder.

Önbellek Yönetimi

location / {
    proxy_pass http://backend:8080;
    
    # Önbellek yapılandırması
    proxy_cache my_cache;
    proxy_cache_key "$scheme$request_method$host$request_uri";
    proxy_cache_valid 200 302 10m;
    proxy_cache_valid 404 1m;
    proxy_cache_use_stale error timeout updating http_500 http_502 http_503 http_504;
    
    # Cache-Control header'ları
    add_header X-Cache-Status $upstream_cache_status;
}

X-Cache-Status header'ı, önbellek durumunu (HIT, MISS, EXPIRED vb.) gösterir ve performans izleme için kullanışlıdır. Nginx sıkıştırma rehberi ile birlikte kullanıldığında, bant genişliği tasarrufu sağlanabilir.

Compression ve Transfer Optimizasyonu

# Gzip sıkıştırması
gzip on;
gzip_vary on;
gzip_proxied any;
gzip_comp_level 6;
gzip_types text/plain text/css text/xml application/json application/javascript application/xml+rss application/atom+image/svg+xml;

# Brotli sıkıştırması (nginx 1.19+)
brotli on;
brotli_comp_level 6;
brotli_types text/plain text/css application/json application/javascript text/xml application/xml image/svg+xml;

Araştırmalara göre, gzip sıkıştırması web sayfası boyutlarını ortalama %70 oranında azaltabilir. Bu da özellikle mobil kullanıcılar için önemli bir performans kazanımı sağlar.

Yük Dengeleme ve Failover

Nginx reverse proxy, gelişmiş yük dengeleme özellikleri sunar. Birden fazla arka uç sunucusu ile yük dağılımı ve otomatik failover yapılandırılabilir.

Yük Dengeleme Metodları

Metod Açıklama Kullanım Senaryosu
round_robin Sıralı dağıtım (varsayılan) Eşit kaynaklı sunucular
least_conn En az bağlantıya sahip sunucu Değişken yükler
ip_hash IP bazlı hash dağılımı Oturum tutma gereksinimi
weighted Ağırlıklı dağıtım Farklı kapasiteli sunucular

Yük Dengeleme Yapılandırması

upstream backend_servers {
    least_conn;
    
    server backend1.example.com:8080 weight=3;
    server backend2.example.com:8080 weight=2;
    server backend3.example.com:8080 weight=1;
    
    keepalive 32;
}

server {
    listen 80;
    server_name example.com;
    
    location / {
        proxy_pass http://backend_servers;
        proxy_http_version 1.1;
        proxy_set_header Connection "";
        
        # Health check
        proxy_connect_timeout 5s;
        proxy_send_timeout 60s;
        proxy_read_timeout 60s;
    }
}

keepalive bağlantıları, arka uç sunucularıyla sürekli TCP bağlantıları açarak tekrarlanan el sıkışma overhead'ini ortadan kaldırır. Bu, yüksek trafikli uygulamalarda %20'ye varan performans artışı sağlayabilir.

Failover Yapılandırması

upstream backend_servers {
    server backend1.example.com:8080 max_fails=3 fail_timeout=30s;
    server backend2.example.com:8080 backup;
    server backend3.example.com:8080 down;
}

max_fails parametresi, bir sunucunun arızalı kabul edilmeden önce kaç kez başarısız olabileceğini belirler. backup olarak işaretlenen sunucu, yalnızca tüm birincil sunucular başarısız olduğunda devreye girer.

SSL/TLS Termination ve Header Yönetimi

Reverse proxy üzerinde SSL/TLS sonlandırması, arka uç sunucularının yükünü azaltır ve merkezi sertifika yönetimi sağlar.

SSL Termination Yapılandırması

server {
    listen 443 ssl http2;
    server_name example.com;
    
    # SSL Sertifikaları
    ssl_certificate /etc/nginx/ssl/example.com.crt;
    ssl_certificate_key /etc/nginx/ssl/example.com.key;
    
    # SSL Güvenlik Ayarları
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256;
    ssl_prefer_server_ciphers off;
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 1d;
    
    # HSTS
    add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload" always;
    
    location / {
        proxy_pass http://backend:8080;
        proxy_set_header X-Forwarded-Proto https;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Host $host;
    }
}

Modern SSL yapılandırması için TLS 1.2 ve TLS 1.3 kullanılmalı, eski protokoller devre dışı bırakılmalıdır

library_booksBenzer İçerikler

Cloud Sunucu Nedir? Avantajları ve Detaylı Rehber
Sunucu Yönetimi
calendar_today5 Nisan 2026
schedule5 dk

Cloud Sunucu Nedir? Avantajları ve Detaylı Rehber

Cloud sunucular, dinamik kaynak dağıtımıyla işletmelerin kesintisiz büyümesini sağlar. Avantajlardan karşılaştırmalara tüm detaylar bu rehberde yer alıyor.

S
Serversiumarrow_forward
Linux vs Windows Sunucu: Hangisi Projeye Uygun?
Sunucu Yönetimi
calendar_today6 Nisan 2026
schedule5 dk

Linux vs Windows Sunucu: Hangisi Projeye Uygun?

Linux ve Windows Sunucu arasındaki teknik farkları, maliyet avantajlarını ve proje uyumluluğunu detaylı olarak karşılaştırıyoruz. Yazılım stack'inize en uygun işletim sistemini seçmek için kapsamlı rehberimizle doğru altyapı kararını verin.

S
Serversiumarrow_forward
Plesk Kurulumu - Ubuntu 24 Üzerinde Adım Adım Rehber
Sunucu Yönetimi
calendar_today16 Nisan 2026
schedule5 dk

Plesk Kurulumu - Ubuntu 24 Üzerinde Adım Adım Rehber

Ubuntu 24 üzerinde Plesk kurulumunu adım adım öğrenin. Bu rehberde sistem gereksinimleri, kurulum adımları ve temel yapılandırma ayarlarını bulabilirsiniz.

S
Serversiumarrow_forward