← Blog'a Dön
DEVOPS

Reverse Proxy Nedir? Nginx, Traefik ve Güvenli Sunucu Mimarisi

F. Çağrı Bilgehan21 Ocak 20269 dk okuma
reverse proxynginxtraefiksunucu

Reverse Proxy Nedir? Güvenli Sunucu Mimarisi

Uygulamanız direkt internete mi açık? SSL sertifikasını uygulama mı yönetiyor? Reverse Proxy ile uygulamanızı koruyun, performansı artırın ve altyapıyı merkezileştirin.

Forward vs Reverse Proxy

Forward Proxy

İstemci adına internete çıkar (VPN, kurumsal proxy):

İstemci → [Forward Proxy] → İnternet

Reverse Proxy

İnternet trafiğini backend sunuculara yönlendirir:

İnternet → [Reverse Proxy] → Backend Sunucu

Reverse Proxy Ne Yapar?

| Özellik | Açıklama | |---------|----------| | SSL Termination | HTTPS'i proxy'de çöz, backend'e HTTP gönder | | Load Balancing | Trafiği birden fazla sunucuya dağıt | | Caching | Statik dosyaları cache'le | | Compression | gzip/brotli sıkıştırma | | Rate Limiting | İstek sayısını sınırla | | Security | Backend IP'yi gizle, WAF desteği | | URL Rewriting | URL'leri yeniden yaz |

Nginx Yapılandırması

server {
    listen 80;
    server_name example.com;
    return 301 https://$server_name$request_uri;
}

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;

    # Güvenlik headers
    add_header X-Frame-Options DENY;
    add_header X-Content-Type-Options nosniff;
    add_header Strict-Transport-Security "max-age=31536000";

    # API proxy
    location /api/ {
        proxy_pass http://localhost:3000;
        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;
    }

    # Statik dosyalar (cache)
    location /static/ {
        root /var/www;
        expires 1y;
        add_header Cache-Control "public, immutable";
    }

    # WebSocket
    location /ws/ {
        proxy_pass http://localhost:3000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
}

Traefik (Container-Native)

# docker-compose.yml
services:
  traefik:
    image: traefik:v3.0
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock

  api:
    image: my-api:latest
    labels:
      - "traefik.http.routers.api.rule=Host(`api.example.com`)"
      - "traefik.http.routers.api.tls.certresolver=letsencrypt"

Reverse Proxy Araçları

| Araç | Avantaj | Kullanım | |------|---------|----------| | Nginx | Performans, yaygınlık | Genel amaç | | Traefik | Otomatik keşif, Docker | Container ortamları | | Caddy | Otomatik HTTPS, basitlik | Küçük projeler | | HAProxy | TCP desteği, güvenilirlik | Yüksek trafik | | Envoy | gRPC, observability | Service mesh |

Best Practices

  1. SSL Termination proxy'de yapın — Backend'i yükten kurtarın
  2. Security headers ekleyin — HSTS, X-Frame-Options, CSP
  3. Request/response buffering — Yavaş istemcilerden backend'i koruyun
  4. Access log — Tüm istekleri kaydedin
  5. Health check — Backend sağlığını kontrol edin
  6. Rate limiting — Kötü niyetli trafiği engelleyin

Sonuç

Reverse Proxy, production ortamının vazgeçilmez bileşenidir. Uygulamanızı direkt internete açmak yerine, reverse proxy ile güvenlik, performans ve esneklik katmanı ekleyin.

Reverse proxy ve sunucu mimarisini LabLudus platformunda öğrenin.

İlgili Yazılar

Infrastructure as Code (IaC) Nedir? Terraform ve Altyapı Otomasyonu

Infrastructure as Code nedir? Terraform, Pulumi, CloudFormation ile altyapı otomasyonu, versiyon kontrolü ve tekrarlanabilir deployment rehberi.

What Is Infrastructure as Code? Terraform & Automation Guide

IaC explained: Terraform, Pulumi, CloudFormation for infrastructure automation, version control, and repeatable deployments.