COMPUTER ENGINEER

Örneklere git
Blog
Next.js / ASP.NET Core / SQL6 dk çalışma
11/ 41

Ağ geçidi

Ters vekil, yük dengeleyici ve TLS sonlandırma

Uygulamanın önünde duran katman: şifreyi çözer, dağıtır, korur.

AnlaÖrneği inceleKendin uygula

Kavramı anlayalım

Üretimde uygulama sunucusu genellikle internete doğrudan açılmaz. Önünde bir ters vekil (Nginx, IIS, YARP, bulut yük dengeleyicisi) durur. Vekil HTTPS bağlantısını karşılar ve TLS’i sonlandırır; sertifika yönetimi tek yerde toplanır. Ardından isteği iç ağdaki bir veya birden çok uygulama örneğine iletir.

Yük dengeleyici, gelen istekleri sağlıklı örnekler arasında dağıtır. Bir örneğin sağlıklı olup olmadığını genellikle bir sağlık uç noktasını (bu projede /api/health) düzenli çağırarak anlar. Yanıt vermeyen örnek havuzdan çıkarılır; böylece bir sunucu çökse bile site açık kalır.

Vekil ayrıca sıkıştırma, istek boyutu sınırı, statik dosya sunumu ve temel saldırı filtreleri gibi işleri üstlenebilir. Ancak bir bedeli vardır: uygulama artık isteği doğrudan istemciden değil vekilden alır. İstemcinin gerçek IP’si ve kullandığı şema (https) iletilen başlıklarla taşınır; bunları doğru ve güvenli okumak bir sonraki derslerin konusudur.

NERESİNDE KULLANIRSIN?

Uygulamanın gördüğü IP, şema ve host bilgisi vekile göre değişir; güvenlik ve log’lar buna bağlıdır.

SIK YAPILAN HATA

API ve veritabanı portlarını da internete açık bırakıp vekili yalnız süs olarak kullanmak.

01 / UYGULAMA

Aynı konu. Üç farklı derinlik.

Temsili örnek
İnternet ──443──▶ [Ters vekil] ──5048 (iç ağ)──▶ API örneği 1
                                   └─────────────▶ API örneği 2

Dışarıdan yalnız vekil görünür; uygulama örnekleri iç ağdadır.

Bu sayfa gerçek bir sunucuya veya veritabanına bağlanmaz. Kod örnekleri .NET 8, Next.js ve SQL Server için temsilîdir; süreler simülasyondaki örnek değerlerdir, ölçüm değildir. Örnekleri yalnız kendi geliştirme ortamında dene; gerçek bağlantı dizesi, token veya parola paylaşma.

02 / SIRA SENDE

Önce kendin dene.

Sağlık uç noktan veritabanını da kontrol ediyor. Veritabanı 2 dakikalığına erişilemez olduğunda bütün API örnekleri havuzdan çıkarılıyor ve site tamamen kapanıyor. Bu tasarımda neyi değiştirirsin?

Çözümü ve açıklamasını göster
Açıklamalı çözüm
Canlılık (liveness) ile hazırlığı (readiness) ayır:
/health/live  → süreç ayakta mı (bağımlılık kontrolü yok)
/health/ready → bağımlılıklar hazır mı
Yük dengeleyici liveness’a bakar; ortak bir bağımlılık arızası bütün örnekleri öldürmez.

Paylaşılan bir bağımlılığın arızası bütün örnekleri ‘sağlıksız’ gösterirse dengeleyici gidecek yer bulamaz; en azından önbellekten veya hata sayfasıyla yanıt vermek daha iyidir.