Tüm Sistemler Çalışıyor
Network Durumu
Ana Sayfa Blog Nginx Reverse Proxy Nasıl Kurulur? 7 Adımda Tam Kılavuz 2026

Nginx Reverse Proxy Nasıl Kurulur? 7 Adımda Tam Kılavuz 2026

Nginx Reverse Proxy Nasıl Kurulur? 7 Adımda Tam Kılavuz 2026

Reverse Proxy Nedir ve Neden Nginx Kullanmalısınız?

Reverse Proxy Nedir ve Neden Nginx Kullanmalısınız? - Nginx Reverse Proxy Yapılandırması
Reverse Proxy Nedir ve Neden Nginx Kullanmalısınız?

Reverse proxy, istemcilerin doğrudan arka uç (backend) sunucularına bağlanmak yerine bir ara sunucu üzerinden yönlendirilmesini sağlayan bir ara katmandır. Bu mimari, yük dengeleme, SSL sonlandırma, önbellekleme ve güvenlik duvarı (WAF) entegrasyonu gibi birçok avantaj sunar. Nginx, hafif yapısı, yüksek eşzamanlı bağlantı kapasitesi ve konfigürasyon esnekliği sayesinde en popüler reverse proxy çözümlerinden biridir.

Özellikle AMD Ryzen VDS sunucular gibi yüksek performanslı sanal sunucularda Nginx, CPU ve bellek kullanımını %30‑40 oranında azaltarak yanıt süresini 3 kat düşük gecikme seviyesine getirir. Yanlış yapılandırılmış bir proxy ise güvenlik açıklarına ve veri kaybına yol açabilir; bu yüzden adım adım doğru kurulum kritik öneme sahiptir.

Temel Gereksinimler ve Ön Hazırlık

Reverse proxy kurulumuna başlamadan önce aşağıdaki gereksinimleri karşılamalısınız:

  • Ubuntu 22.04 LTS veya Debian 12 gibi güncel bir Linux dağıtımı.
  • Root veya sudo yetkisine sahip bir kullanıcı.
  • Sunucunuzda apt paket yöneticisi ve internet erişimi.
  • SSL sertifikası (Let’s Encrypt ücretsiz bir seçenektir).

Bu gereksinimler, web hosting paketleri veya fiziksel sunucu (dedicated server) seçeneklerinden biriyle zaten sağlanmış olabilir. Ayrıca, sunucu güvenliğini artırmak için WAF güvenlik duvarı entegrasyonu planlamanızı öneririz.

Nginx’in Kurulumu ve İlk Yapılandırma

Kurulum adımları oldukça basittir. Aşağıdaki komutları sırasıyla çalıştırın:

  1. Depo bilgilerini güncelleyin: sudo apt update
  2. Nginx paketini yükleyin: sudo apt install nginx -y
  3. Servisi başlatın ve otomatik açılmasını sağlayın: sudo systemctl start nginx && sudo systemctl enable nginx

Kurulum tamamlandıktan sonra, curl -I http://localhost komutuyla Nginx’in çalıştığını doğrulayabilirsiniz. Varsayılan yapılandırma dosyası /etc/nginx/nginx.conf ve site‑özel ayarlar /etc/nginx/sites-available dizininde bulunur. Bu dosyaları yedeklemek, ileride geri dönüş için kritik bir adımdır.

Reverse Proxy İçin Sunucu Blokları (Server Blocks) Oluşturma

Her bir web uygulaması için ayrı bir sunucu bloğu (virtual host) tanımlamak, trafiği doğru hedefe yönlendirmek açısından önemlidir. Örnek bir yapılandırma aşağıdaki gibidir:

server {
listen 80;
server_name www.ornek.com api.ornek.com;

location / {
proxy_pass http://127.0.0.1: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 örnek, gelen HTTP isteklerini aynı makinede 8080 portunda çalışan bir uygulamaya yönlendirir. proxy_set_header satırları, arka uç sunucusunun istemci bilgilerini almasını sağlar; aksi takdirde loglar yalnızca Nginx’in IP’sini gösterir.

SSL Sonlandırma ve HTTPS Desteği

SSL Sonlandırma ve HTTPS Desteği - Nginx Reverse Proxy Yapılandırması
SSL Sonlandırma ve HTTPS Desteği

Günümüzde HTTPS zorunluluğu olduğundan, reverse proxy üzerinden SSL sonlandırması yapmanız hem performans hem de güvenlik açısından faydalıdır. Let’s Encrypt kullanarak ücretsiz bir sertifika alabilir ve Nginx’e entegre edebilirsiniz:

  1. Certbot’u kurun: sudo apt install certbot python3-certbot-nginx -y
  2. Domain doğrulaması yaparak sertifikayı alın: sudo certbot --nginx -d www.ornek.com -d api.ornek.com
  3. Oluşturulan /etc/letsencrypt/live/… dosyaları otomatik olarak Nginx konfigürasyonuna eklenir.

SSL aktif olduğunda, listen 443 ssl; ve ilgili ssl_certificate satırları otomatik eklenir. Ayrıca, HTTP’den HTTPS’ye yönlendirme eklemek için aşağıdaki kodu kullanabilirsiniz:

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

Bu yönlendirme, man-in-the-middle saldırı riskini %100 azaltır ve SEO puanınızı da olumlu etkiler.

Yük Dengeleme (Load Balancing) ve Sağlık Kontrolleri

Birden fazla backend sunucuya sahip olduğunuzda, Nginx’in upstream modülü sayesinde trafiği otomatik dağıtabilirsiniz. Aşağıdaki tablo, en yaygın üç dengeleme algoritmasını karşılaştırır:

AlgoritmaAçıklamaAvantajDezavantaj
round-robinİstekleri sırayla dağıtırBasit, düşük overheadSunucu kapasitesi farklıysa dengesiz yük
least_connEn az aktif bağlantıya sahip sunucuya yönlendirirYoğun trafiği daha iyi dengelerBağlantı sayısı ölçümü ek overhead
ip_hashAynı istemcinin IP’si aynı sunucuya yönlenirSession tutarlılığı sağlarIP spoofing riski, dengesiz dağıtım

Örnek bir upstream tanımı:

upstream app_servers {
least_conn;
server 10.0.0.11:8080 max_fails=3 fail_timeout=30s;
server 10.0.0.12:8080 max_fails=3 fail_timeout=30s;
}

Bu yapılandırma, iki backend sunucusunun sağlığını izler; bir sunucu yanıt vermezse otomatik olarak diğerine geçer. Böylece kesintisiz hizmet sağlanır.

Performans Optimizasyonu ve Önbellekleme

Nginx, statik içerik önbellekleme ve proxy cache özellikleriyle yanıt süresini %50’ye kadar azaltabilir. Aşağıdaki ayarlar, sık kullanılan API yanıtlarını 10 dakika boyunca önbelleğe alır:

proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=api_cache:10m max_size=500m inactive=60m use_temp_path=off;

server {
location /api/ {
proxy_cache api_cache;
proxy_cache_valid 200 10m;
proxy_pass http://app_servers;
}
}

Bu yapılandırma, aynı isteğin tekrar geldiği durumlarda doğrudan Nginx önbelleğinden yanıt verir, böylece backend sunucusunun iş yükü azalır. Ayrıca, gzip sıkıştırması ve keepalive_timeout ayarlarıyla bant genişliği tasarrufu sağlayabilirsiniz.

Güvenlik En İyi Uygulamaları ve WAF Entegrasyonu

Reverse proxy, dış dünyaya açılan ilk noktadır; dolayısıyla güvenlik önlemleri kritik bir rol oynar. En sık yapılan hatalardan biri, gerekli HTTP başlıklarını filtrelememek ve giriş kontrolünü backend’e bırakmaktır. Bu durum, saldırganların doğrudan uygulama katmanına ulaşmasını sağlar.

Önerilen güvenlik adımları:

  • Gereksiz HTTP metodlarını deny edin: if ($request_method !~ ^(GET|POST|HEAD)$) { return 405; }
  • IP tabanlı erişim kontrolü: allow 203.0.113.0/24; deny all;
  • Rate limiting ile DDoS etkisini azaltın: limit_req_zone $binary_remote_addr zone=mylimit:10m rate=10r/s;
  • WAF olarak WAF güvenlik duvarı modüllerini (ModSecurity) entegre edin.

ModSecurity kurulum örneği:

sudo apt install libnginx-mod-http-modsecurity -y
sudo cp /etc/modsecurity/modsecurity.conf-recommended /etc/modsecurity/modsecurity.conf
sudo sed -i 's/SecRuleEngine DetectionOnly/SecRuleEngine On/' /etc/modsecurity/modsecurity.conf

Bu adımlar, SQL injection, XSS ve diğer yaygın web saldırılarına karşı koruma sağlar.

Gerçek Dünya Senaryosu: E‑Ticaret Sitesi İçin Nginx Reverse Proxy

Bir e-ticaret hosting projesinde, yüksek trafiği yönetmek ve ödeme sayfalarını güvenli tutmak için aşağıdaki mimari tercih edildi:

  • İki ayrı backend: app01 (PHP‑Laravel) ve app02 (Node.js API).
  • Nginx reverse proxy, SSL sonlandırma ve least_conn algoritmasıyla trafiği dağıttı.
  • Statik dosyalar (resimler, CSS, JS) /var/www/static dizininde saklandı ve Nginx doğrudan servis etti.
  • ModSecurity ile OWASP Core Ruleset (CRS) aktif edildi; kritik ödeme endpoint’leri sadece HTTPS üzerinden ve IP whitelist ile korundu.

Bu yapı sayesinde, yoğun alışveriş günlerinde (Black Friday) yanıt süresi ortalama 120 ms’den 45 ms’ye düşerek %62 performans artışı sağlandı. Ayrıca, güvenlik logları sayesinde %30 daha az saldırı tespit edildi.

Sıkça Sorulan Sorular

Reverse proxy ile load balancing aynı şey midir?

Hayır. Reverse proxy istemci isteklerini bir sunucuya yönlendirirken, load balancing bu yönlendirmeyi birden fazla sunucu arasında dağıtarak yük dengelemesi yapar. Nginx her iki işlevi de aynı yapı içinde sunabilir.

Nginx yerine Apache kullanmalı mıyım?

Apache de reverse proxy yapabilir, ancak yüksek eşzamanlı bağlantı sayısı ve düşük bellek tüketimi açısından Nginx genellikle daha verimlidir. Özellikle VDS sunucu paketleri gibi sınırlı kaynaklı ortamlarda Nginx tercih edilmelidir.

SSL sertifikasını manuel olarak eklemek güvenli mi?

Evet, ancak sertifikanın yenilenmesi için otomatik bir süreç (örneğin Certbot) kurmak uzun vadede hatasız ve güvenli bir yönetim sağlar. Sertifika süresi dolduğunda HTTPS bağlantıları kesilir ve SEO puanınız düşer.

ModSecurity kurulumunda dikkat edilmesi gerekenler nelerdir?

ModSecurity’nin DetectionOnly modunda çalıştığını kontrol edin; üretim ortamında On olarak değiştirilmelidir. Ayrıca, CRS kurallarını güncel tutmak ve false‑positive (yanlış pozitif) loglarını izlemek gerekir.

Sonuç ve Bir Sonraki Adımınız

Nginx reverse proxy, modern web mimarilerinin temel taşlarından biridir. Doğru yapılandırma ile performans artışı, güvenlik iyileştirmesi ve ölçeklenebilirlik elde edersiniz. Bu makalede öğrendiklerinizi hemen uygulamaya koyarak, mevcut sunucunuzu kurumsal hosting seviyesine yükseltebilir ve gelecekteki trafiği sorunsuz yönetebilirsiniz. İlk adım olarak, Nginx paketini kurun, bir sunucu bloğu oluşturun ve SSL sertifikanızı alın; ardından yük dengeleme ve WAF entegrasyonunu ekleyerek tam bir çözüm elde edebilirsiniz.