Ağ geçidi
Ters vekil, yük dengeleyici ve TLS sonlandırma
Uygulamanın önünde duran katman: şifreyi çözer, dağıtır, korur.
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.
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.
API ve veritabanı portlarını da internete açık bırakıp vekili yalnız süs olarak kullanmak.
Aynı konu. Üç farklı derinlik.
İnternet ──443──▶ [Ters vekil] ──5048 (iç ağ)──▶ API örneği 1
└─────────────▶ API örneği 2Dış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.
Ö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
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.