İçeriğe geç
Süreçlerinize uygun yazılımı birlikte planlayalım. Demo ve teklif için arayın: +90 546 737 48 29

TR EN DE

Reverse proxy (ters vekil) nedir?

Ters vekil (reverse proxy), ziyaretçilerden gelen istekleri sunucularınızın adına karşılayan ve arkadaki uygulamaya ileten sunucudur. Ziyaretçi alan adınıza bağlandığında aslında ters vekille konuşur; arkada bir mi, on mu sunucu olduğunu, uygulamanın hangi dilde yazıldığını ya da hangi kapıda çalıştığını bilmez.

Bir benzetme: bir kurumun danışma bankosu. Gelen herkes önce bankoya uğrar; banko kimliği kontrol eder, doğru birime yönlendirir, basit soruları kendisi yanıtlar. Birimlerin kapısı sokağa açılmaz. Ters vekil web trafiği için aynı işi görür. Nginx bu iş için en yaygın kullanılan yazılımlardan biridir; genel tanıtımı Nginx rehberinde, vekil kavramının geneli vekil sunucu rehberinde anlatılır.

Kısaca

  • Ters vekil, ziyaretçi ile uygulama sunucularınız arasında duran tek giriş noktasıdır.
  • Sertifika, yük dengeleme, önbellek, sıkıştırma ve oran sınırlama tek yerde yönetilir.
  • Arka uç, ziyaretçinin gerçek adresini ve protokolü yalnız iletilen başlıklardan öğrenir.
  • Ters vekil tek hata noktasıdır; zaman aşımı ve yedeklilik baştan düşünülmelidir.
Bu sayfada

Ters vekil ne yapar?

  1. Nerede durur: forward proxy ile farkı

    İki tür de arada durur, ama farklı tarafa hizmet eder:

    • Forward proxy istemcinin önündedir ve onun adına internete çıkar. Kurum ağlarında çıkış trafiğini denetlemek için kullanılır.
    • Reverse proxy sunucunun önündedir ve onun adına istekleri karşılar. Site sahibi kurar; ziyaretçinin hiçbir ayar yapması gerekmez, varlığından haberi bile olmaz.

    Ters vekilin arkasındaki sunuculara arka uç sunucusu (backend; Nginx yapılandırmasında upstream) denir. Arka uç bir PHP, Node.js, Java ya da Python uygulaması, başka bir web sunucusu ya da bir konteyner olabilir.

    Şema: forward proxy istemcinin önünde, reverse proxy sunucunun önünde durur; ziyaretçi yalnız ters vekille konuşur : Büyüt
  2. Üstlendiği görevler

    • Tek giriş noktası: Tüm istekler tek bir adresten ve kapıdan girer. Güvenlik duvarında yalnız ters vekil internete açılır; erişim günlükleri tek yerde toplanır.
    • SSL sonlandırma (SSL/TLS termination): Sertifika ters vekile kurulur, şifreli bağlantı orada çözülür. Her uygulamaya ayrı sertifika kurmak ve yenilemek gerekmez.
    • Yük dengeleme (load balancing): İstekler birden çok arka uç sunucusuna dağıtılır; biri yanıt vermezse istek diğerlerine yönlendirilir.
    • Önbellek (cache): Değişmeyen yanıtlar saklanır ve arka uca hiç gidilmeden yeniden sunulur.
    • Arka ucu gizleme ve koruma: Uygulama sunucuları iç ağda kalır, internetten doğrudan erişilemez. Hatalı ya da aşırı büyük istekler arka uca ulaşmadan reddedilebilir.
    • Yönlendirme: Birden çok uygulama tek alan adı altında, yola (ör. /api/) ya da alt alan adına (ör. panel.ornek.com) göre yayınlanır.
    • Sıkıştırma: Metin tabanlı yanıtlar ziyaretçiye sıkıştırılarak gönderilir; uygulamanın bununla uğraşması gerekmez.
    • Oran sınırlama (rate limiting): Bir kaynağın belirli sürede yapabileceği istek sayısı kısıtlanır; giriş ve arama gibi pahalı uç noktalar korunur.
    Kartlar: ters vekilin görevleri; tek giriş noktası, SSL sonlandırma, yük dengeleme, önbellek, arka ucu koruma, yönlendirme, sıkıştırma, oran sınırlama : Büyüt
  3. Tipik mimariler

    • Tek uygulama: Ters vekil ile uygulama aynı sunucudadır. Uygulama yalnız yerel adreste (ör. 127.0.0.1:3000) dinler; dışarıya ters vekil açılır. En sık görülen kurulumdur ve tek sunuculu siteler için de yararlıdır: sertifika, sıkıştırma ve statik dosyalar uygulamadan ayrılır.
    • Birkaç uygulama: Aynı ters vekil, isteğin yoluna ya da alan adına bakarak farklı uygulamalara yönlendirir. Web sitesi, API ve yönetim paneli ayrı süreçler olarak çalışır ama ziyaretçi tek bir site görür.
    • Birden çok arka uç: Aynı uygulamanın kopyaları birden çok sunucuda çalışır; ters vekil istekleri aralarında dağıtır. Bir sunucu bakıma alındığında site açık kalır. Ayrıntılar yük dengeleme rehberindedir.
    Şema: üç tipik mimari; tek uygulama, yola ya da alt alan adına göre birkaç uygulama, yük dengelemeli birden çok arka uç : Büyüt
  4. SSL sonlandırma ve gerçek ziyaretçi bilgisi

    Ters vekil araya girdiğinde arka uç, bağlantının karşı ucunda ziyaretçiyi değil ters vekili görür. Uygulamaya iki bilgi kaybolmuş gibi gelir: ziyaretçinin IP adresi ve bağlantının https olup olmadığı. Ters vekil bu bilgileri isteğe eklediği başlıklarla iletir:

    • X-Forwarded-For: ziyaretçinin IP adresi (arada birden çok vekil varsa virgülle ayrılmış liste).
    • X-Forwarded-Proto: ziyaretçinin kullandığı protokol (http ya da https).
    • Host: ziyaretçinin istediği alan adı.

    Uygulamanın bu başlıkları okuyacak şekilde ayarlanması gerekir; ayrıntılar aşağıdaki "Dikkat edilecekler" bölümündedir.

    Şema: ziyaretçi ters vekile HTTPS ile bağlanır, ters vekil arka uca iç ağdan HTTP ile iletir ve Host, X-Forwarded-For, X-Forwarded-Proto başlıklarını ekler : Büyüt
  5. CDN ve yük dengeleyici ile ilişkisi

    Bu üç kavram birbirinin rakibi değil, aynı fikrin farklı ölçekleridir:

    • Yük dengeleyici (load balancer), ters vekilin dağıtım görevine odaklanmış hâlidir. Nginx gibi bir ters vekil yük dengelemeyi de yapabilir; büyük yapılarda bu iş için ayrı bir katman ya da barındırma sağlayıcının yönetilen hizmeti kullanılır.
    • CDN (içerik dağıtım ağı), dünyanın farklı noktalarına yayılmış ve önbelleğe ağırlık veren ters vekillerden oluşur. Ziyaretçi kendisine en yakın uç sunucuya bağlanır; uç sunucu elinde olmayan içeriği sizin sunucunuzdan ister. Cloudflare gibi hizmetler bu türün örneğidir.

    Birlikte kullanıldıklarında zincir uzar: ziyaretçi → CDN → kendi ters vekiliniz → uygulama. Bu durumda sizin ters vekiliniz de bağlantının karşısında ziyaretçiyi değil CDN'i görür; gerçek adres yine başlıklardan okunur. Ayrıntılar için CDN rehberine bakın.

    Şema: ziyaretçi CDN'e, CDN ters vekile, ters vekil uygulama sunucularına bağlanır : Büyüt

Kısa bir Nginx örneği

Aşağıdaki örnek, ornek.com için gelen istekleri iç ağdaki iki uygulama sunucusuna dağıtır ve ziyaretçi bilgisini başlıklarla iletir. upstream bloğu arka uç sunucularını tanımlar; proxy_pass yönergesi (directive) isteği o gruba gönderir.

Nginx
# Arka uç sunucuları (iç ağ)
upstream uygulama {
    server 10.0.0.11:8080;
    server 10.0.0.12:8080;
}

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

    location / {
        # İsteği arka uç grubuna ilet
        proxy_pass http://uygulama;

        # Ziyaretçinin istediği alan adı, gerçek IP adresi ve protokolü
        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;
    }
}

Tek bir uygulamanız varsa upstream bloğuna gerek yoktur; proxy_pass http://127.0.0.1:3000; yazmak yeterlidir. Birden çok uygulamayı yola ve alt alan adına göre ayırmak ise şöyle görünür:

Nginx
server {
    listen 80;
    server_name ornek.com;

    proxy_set_header Host $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;

    # Web sitesi
    location / {
        proxy_pass http://127.0.0.1:3000;
    }

    # /api/ ile başlayan istekler ayrı bir uygulamaya gider
    location /api/ {
        proxy_pass http://127.0.0.1:8080;
    }
}

# Alt alan adı: yönetim paneli ayrı bir uygulama
server {
    listen 80;
    server_name panel.ornek.com;

    location / {
        proxy_pass http://127.0.0.1:9000;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

Örnekler kavramı göstermek için yalın tutulmuştur ve yalnız 80 numaralı kapıyı dinler. Gerçek kurulumda HTTPS, zaman aşımı ayarları ve WebSocket desteği gibi ekler gerekir: adım adım anlatım Nginx ile reverse proxy kurulumu rehberinde, sertifika kurulumu Nginx'te HTTPS rehberindedir.

Dikkat edilecekler

Gerçek ziyaretçi IP'si

Uygulama bağlantının karşı ucuna bakarsa her ziyaretçiyi ters vekilin adresiyle görür: günlükler anlamsızlaşır, IP'ye dayalı oran sınırı herkesi tek kişi sayar. Çözüm, X-Forwarded-For başlığını okumaktır; ancak bu başlığı herkes gönderebilir. İstek doğrudan internetten geliyorsa başlığa güvenilmez. Kural şudur: başlığı yalnızca bağlantı kendi ters vekilinizin adresinden geliyorsa dikkate alın.

PHP
<?php
// X-Forwarded-For başlığına yalnız istek kendi ters vekilinizden geliyorsa güvenin.
// Tek ters vekilli kurulum içindir; vekil, gördüğü adresi listenin sonuna ekler.
$guvenilenVekiller = ['10.0.0.5'];

$ip = $_SERVER['REMOTE_ADDR'] ?? '';
if (in_array($ip, $guvenilenVekiller, true) && !empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
    $adresler = array_map('trim', explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']));
    $aday = end($adresler);
    if (filter_var($aday, FILTER_VALIDATE_IP) !== false) {
        $ip = $aday;
    }
}

// Ziyaretçi siteye https ile mi bağlandı?
$https = in_array($_SERVER['REMOTE_ADDR'] ?? '', $guvenilenVekiller, true)
    && ($_SERVER['HTTP_X_FORWARDED_PROTO'] ?? '') === 'https';

Çoğu uygulama çatısında bunun için "güvenilen vekiller" (trusted proxies) ayarı bulunur; elle yazmak yerine onu kullanın. Arka uç sunucularının yalnız ters vekilden bağlantı kabul etmesi de aynı derecede önemlidir; aksi hâlde ters vekil atlanarak sahte başlık gönderilebilir.

Protokol bilgisi

SSL sonlandırma yapıldığında uygulamaya gelen bağlantı düz HTTP'dir. Uygulama X-Forwarded-Proto başlığını dikkate almazsa bağlantıları http:// ile üretir, "güvenli" çerezleri göndermez ya da siteyi sürekli https adresine yönlendirerek sonsuz döngüye sokar.

Host başlığı

Nginx, arka uca giden istekte Host başlığını varsayılan olarak proxy_pass içindeki adrese göre gönderir. Uygulamanın ziyaretçinin yazdığı alan adını görmesi için örnekteki proxy_set_header Host $host; satırı gerekir.

Tek hata noktası

Tüm trafik ters vekilden geçtiğine göre, o durursa arkadaki sunucular sağlam olsa bile site kapanır. Küçük sitelerde bu kabul edilebilir bir risktir; kesintinin pahalı olduğu yapılarda ters vekil de yedekli kurulur (iki sunucu ve aralarında taşınabilen bir IP adresi ya da sağlayıcının yönetilen yük dengeleyicisi). Yapılandırmayı değiştirdikten sonra yeniden yüklemeden önce mutlaka sınayın; hatalı bir satır tüm siteleri etkiler.

Zaman aşımı

Ters vekil, arka ucun yanıtını sınırsız beklemez. Nginx'te proxy_read_timeout yönergesinin varsayılanı 60 saniyedir; arka uç bu sürede yanıt göndermezse ziyaretçi 504 hatası görür. Arka uca hiç bağlanılamazsa ya da geçersiz yanıt gelirse hata 502'dir. Uzun süren işlemleri (rapor, dışa aktarma) zaman aşımını (timeout) büyüterek değil, mümkünse arka planda çalıştırarak çözün. Hata kodlarının ayrıntısı 502 ve 504 hataları rehberindedir.

Yükleme boyutu

Nginx'te client_max_body_size varsayılanı 1m'dir (1 megabayt). Uygulamanız daha büyük dosya yüklemesine izin veriyorsa bu sınırı ters vekilde de yükseltmeniz gerekir; yoksa istek uygulamaya ulaşmadan 413 hatasıyla reddedilir.

Ters vekil ne zaman gerekir?

  • Uygulamanız kendi kapısında çalışan bir süreçse (Node.js, Java, Python, .NET gibi) ve onu 80/443 üzerinden yayınlamak istiyorsanız.
  • Aynı sunucuda birden çok site ya da uygulama barındırıyorsanız.
  • Sertifikaları tek yerden yönetmek istiyorsanız.
  • Trafiği birden çok sunucuya dağıtmanız ya da kesintisiz güncelleme yapmanız gerekiyorsa.
  • Statik dosyaları ve önbelleği uygulamadan ayırıp uygulamanın yükünü azaltmak istiyorsanız.

Paylaşımlı barındırmadaki klasik bir PHP sitesinde ayrıca ters vekil kurmanız gerekmez; bu düzeni barındırma sağlayıcı yönetir. Kendi sunucunuzu (VPS ya da fiziksel sunucu) yönetiyorsanız ters vekil, kurulumun doğal bir parçasıdır.

Kontrol listesi

  • Arka uç sunucuları internete doğrudan açık değil; yalnız ters vekilden bağlantı kabul ediyor.
  • Host, X-Forwarded-For ve X-Forwarded-Proto başlıkları iletiliyor.
  • Uygulama, bu başlıklara yalnız ters vekilin adresinden gelen isteklerde güveniyor.
  • Günlüklerde ziyaretçinin gerçek IP adresi görünüyor.
  • Zaman aşımı ve yükleme boyutu sınırları uygulamanın gereksinimine göre ayarlı.
  • Yapılandırma değişikliği yeniden yüklemeden önce sınanıyor.
  • Ters vekil durduğunda ne olacağı biliniyor: izleme ve gerekiyorsa yedek kurulu.

Sık sorulan sorular

Reverse proxy ile yük dengeleyici aynı şey mi?

Yük dengeleme, ters vekilin görevlerinden biridir. Yük dengeleyici denen ürünler bu göreve odaklanır; Nginx gibi bir ters vekil ise yük dengelemenin yanında SSL sonlandırma, önbellek ve yönlendirme de yapar.

Tek sunucum var; ters vekil yine de işe yarar mı?

Evet. Uygulamanız kendi kapısında çalışan bir süreçse onu doğrudan internete açmak yerine önüne ters vekil koymak sertifika, sıkıştırma, statik dosyalar ve istek sınırları için tek ve denenmiş bir katman sağlar.

Ters vekil ile arka uç arasındaki bağlantı şifresiz olabilir mi?

İkisi aynı sunucudaysa ya da yalnız size ait, kapalı bir iç ağdaysa yaygın uygulama düz HTTP kullanmaktır. Trafik güvenmediğiniz bir ağdan geçiyorsa bu bağlantı da şifrelenmelidir.

Uygulamam neden herkesi aynı IP adresiyle görüyor?

Çünkü bağlantıyı kuran ters vekildir. Ters vekilin X-Forwarded-For başlığını ilettiğinden ve uygulamanın bu başlığı yalnız ters vekilin adresinden gelen isteklerde okuduğundan emin olun.

CDN kullanıyorsam ayrıca ters vekile gerek var mı?

Çoğu zaman evet. CDN içeriği ziyaretçiye yakın noktalardan sunar; kendi sunucunuzdaki ters vekil ise uygulamalarınıza yönlendirme, sertifika ve sınırlar için gereklidir. İkisi birbirini tamamlar.

BYK Yazılım Destek Ekibi
Bu rehber BYK Yazılım destek ekibi tarafından hazırlanır ve düzenli olarak gözden geçirilir. Son güncelleme: 04.10.2026.

İlgili rehberler

Web sitenizin altyapısını birlikte konuşalım

BYK Yazılım kurumsal web siteleri geliştirir. Sitenizle ilgili sorularınız için bize yazabilirsiniz.

Bize ulaşın Kurumsal web sitesi hizmetimiz