GH GambleHub

Ters proxy ve yönlendirme

1) Ters proxy rolü

Ters proxy - platformun "ön çizgisi": TLS'yi kabul eder, trafiği yukarı akış arasında dağıtır, güvenlik ve performans politikaları uygular. Amaç minimum gecikme, öngörülebilir yönlendirme ve aşağılayıcı örneklerin/bölgelerin hızlı izolasyonudur.

2) Katmanlar ve protokoller

L4: TCP/UDP proxy (SNI tabanlı TLS geçişi, QUIC). HTTP'yi anlamadan düşük fiyat.
L7: HTTP/1. 1-2-3, gRPC, WebSocket. Zengin yönlendirme (ana bilgisayar, yol, başlıklar, çerezler), dönüşümler ve önbellek.

TLS modeli: çevre üzerinde sonlandır (NGINX/Envoy), içinde - mTLS/mesh. SNI, aynı IP üzerinde sanal ana bilgisayarlara izin verir.

3) Yönlendirme stratejileri (L7)

1. Ana bilgisayar tabanlı: etki alanına göre ('api. marka. com '> cluster' brand-api ').
2. Yol tabanlı:'/v1/payments '-' payments-svc ','/v1/wallets' - 'wallets-svc'.
3. Başlık tabanlı: 'X-Region: eu-central', 'X-Tenant: 42', 'User-Agent'/' Accept'.
4. Çerez tabanlı: A/B testleri, yapışkan oturumlar.
5. Ağırlıklı/Kanarya: Yeni sürüme trafik yüzdesi (%1-5 - %100).
6. Geo/ASN: Ülkeye göre/ASN en yakın POP/bölgeye gönderilir.
7. Tutarlı karma: bir örneğe anahtar (user_id/tenant_id) bağlama - önbellek yerelliği/yapışkanlığı.
8. Gölge/Yansıtma: Yanıtı etkilemeden trafiği "gölge" akışına kopyalayın (regresyon testleri için).

4) Dengeleme ve hata toleransı

Algoritmalar: yuvarlak-robin, en az istek, rastgele, halka-karma (tutarlı).
Sağlık kontrolleri: aktif (HTTP/TCP) + pasif (kodlar/zaman aşımları ile).
Outlier ejection: artan hata/gecikme süresine sahip bir ana bilgisayarı geçici olarak "nakavt" eder.
Yeniden denemeler: sınırlı, per-try timeout ve jitter ile; Güvenli olmayan yöntemleri idempotency olmadan geri çekmeyin.
Bağlantı havuzu: sıcak havuzları yukarı yönde tutun, yüksekleri sınırlayın.

5) Çevre performansı

Önbelleğe alma: tuşa göre (method + host + path + Vary), 'ETag/If-None-Match' koşulları, TTL ve stale-while-revalidate.
Sıkıştırma: Metin yanıtları için brotli/gzip.
HTTP/2/3: çoğullama, başlık sıkıştırma; WAF/IDS uyumluluğunu doğrulayın.
Request coalescing - Aynı önbellek anahtarı için eşzamanlı istekleri daralt.

6) Proxy'de güvenlik

TLS: 1. 2 + (1'den daha iyi. 3), OCSP zımbalama, HSTS.
WAF/bot filtreleri: uygulamaya yönlendirmeden önce.
CORS/CSP/Fetch-Metadata: ilkelere göre.
Header- гигиена: 'X-Forwarded-For/Proto', 'Forwarded', 'traceparent'; Başlık enjeksiyonu ve büyük boy koruma.
Gövde/başlık sınırları: DoS desenleri için erken 413/431.
İş ortağı entegrasyonları ve dahili API'ler için mTLS.

7) Dağıtım şemaları: kanarya/mavi-yeşil/versiyonlar

Ağırlıklı yönlendirme на seviye-7 (%1, %5, %25, %50, %100).
Header-gate: özelliği flag/header (internal/testing) ile etkinleştirin.
Mavi-yeşil: tam DNS/rota anahtarlama, hızlı geri alma.
Gölge: Metriklerin/günlüklerin girişi ile yeni sürümün paralel çalışması.

8) Yapışkan oturumlar ve karma yönlendirme

Çerez yapışkanlığı ('Set-Cookie: SRV = shard-a; Yol =/; HttpOnly ') durumsal yükler için.
Ring-hash/' user _ id/tenant _ id'ile tutarlı - önbellek çapraz engellerini azaltın.
Dikkat: yazma-yükler için "ebedi" yapışkanlık önlemek - sıcak nokta; Kota kiracısı kullanın.

9) Bölgesel ve coğrafi yönlendirme

En yakın POP'u seçmek için Anycast + geo-DNS.
Testler ve hata ayıklama için Header-override (örneğin, 'X-Region').
Yasal olarak gerekli veri lokalizasyonu ile koordine edin (bölgeye/yargı alanına göre rota).

10) Gözlemlenebilirlik ve kontrol

KIRMIZI metrikler: RPS, hata oranı (sınıfa göre), gecikme p95/p99 rota/küme başına.
Outlier/health: Düzenleme/geri alma sayısı, yavaş arama oranı.
Günlükler: yapılandırılmış, PII olmadan; 'trace _ id'/' span _ id' korelasyonu.
İzleme (OTel): yayılma alanları ingress> router> upstream; P99 grafiklerinde örnekler.

11) Yapılandırma örnekleri

11. 1 NGINX: ana bilgisayar/yol/ağırlıklı + кэш

nginx map $http_x_canary $canary { default 0; "1" 1; }
upstream app_v1 { least_conn; server 10. 0. 0. 1:8080 max_fails=3 fail_timeout=10s; }
upstream app_v2 { least_conn; server 10. 0. 0. 2:8080; }

server {
listen 443 ssl http2;
server_name api. example. com;

Кэш proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=apicache:256m max_size=10g inactive=10m use_temp_path=off;

location /v1/ {
proxy_set_header X-Forwarded-Proto https;
proxy_set_header X-Request-ID $request_id;
proxy_read_timeout 300ms; proxy_connect_timeout 100ms;

Weighted: 5% on v2 if canary = 1, otherwise 0%
set $backend app_v1;
if ($canary) { set $backend app_v2; }
proxy_pass http://$backend;
}

Static with cache location/assets/{
proxy_cache apicache;
proxy_cache_valid 200 10m;
add_header Cache-Control "public, max-age=600";
proxy_pass http://static_cluster;
}
}

11. 2 Elçi: başlık yönlendirme, kanarya, outlier-ejection, yansıtma

yaml static_resources:
clusters:
- name: svc_v1 type: STRICT_DNS lb_policy: LEAST_REQUEST outlier_detection:
consecutive_5xx: 5 interval: 5s base_ejection_time: 30s max_ejection_percent: 50
- name: svc_v2 type: STRICT_DNS lb_policy: LEAST_REQUEST
- name: mirror_svc type: STRICT_DNS

listeners:
- name: https filter_chains:
- filters:
- name: envoy. filters. network. http_connection_manager typed_config:
route_config:
virtual_hosts:
- name: api domains: ["api. example. com"]
routes:
- match:
prefix: "/v1"
headers:
- name: "X-Region"
exact_match: "eu"
route:
cluster: svc_v1 timeout: 350ms retry_policy:
retry_on: connect-failure,reset,5xx num_retries: 1 per_try_timeout: 200ms request_mirror_policies:
- cluster: mirror_svc runtime_key: mirror. enabled
- match: { prefix: "/v1" }
route:
weighted_clusters:
clusters:
- name: svc_v1 weight: 95
- name: svc_v2 weight: 5

11. 3 Traefik: kurallar + ara katman yazılımı

yaml http:
routers:
api:
rule: "Host(`api. example. com`) && PathPrefix(`/v1`)"
service: svc middlewares: [hsts, compress]
middlewares:
hsts:
headers:
stsSeconds: 31536000 stsIncludeSubdomains: true compress:
compress: {}
services:
svc:
weighted:
services:
- name: v1 weight: 95
- name: v2 weight: 5

11. 4 Kubernetes: Kanarya için Ingress + manifesto (NGINX Ingress)

yaml apiVersion: networking. k8s. io/v1 kind: Ingress metadata:
name: api annotations:
nginx. ingress. kubernetes. io/canary: "true"
nginx. ingress. kubernetes. io/canary-weight: "5"
spec:
rules:
- host: api. example. com http:
paths:
- path: /v1 pathType: Prefix backend:
service:
name: svc-v1 port: { number: 8080 }

12) Dönüşümler ve uyumluluk

Başlıkların/yolların normalleştirilmesi, 'Konum' sayımı, 'Önbellek Kontrolü' kontrolü.
Çevirmenler aracılığıyla gRPC ↔ HTTP/JSON (grpc-json-transcoder).
WebSocket/HTTP2 yükseltmeleri - Proxy'nin 'Yükseltme'/' Bağlantı'yı atladığından emin olun.

13) Test ve kaos senaryoları

Yükleme: patlamalar, uzun platolar, "uzun" gövdeler (yavaş POST).
Yukarı akışa gecikme/kayıp enjeksiyonu - yeniden denemeler/zaman aşımı/aykırı denetimi.
Kanarya metrikleri: p95/p99, eski versiyona karşı yeni sürümün hata oranı; SLO tarafından otomatik geri alma.
Gölge: Yanıtların karşılaştırılması (örnekleme) ve yan yana mantık.

14) Antipatterns

Idempotency ve deadline hariç küresel geri çekilmeler - çiftler ve fırtına.
Sıcak parça kontrolü olmayan yapışkan oturumlar - yük eğrilmesi.
Sağlık kontrolleri/outlier-ejection eksikliği - havuzda "çürümüş" örnekler.
Sınırsız başlıklar/gövdeler - en basit DoS.
Şema sürümü olmadan dönüşümleri ve güvenliği karıştırma - beklenmedik regresyonlar.
'Vary' olmayan tek bir global anahtar önbelleği - yanlış yanıtlar.

15) iGaming/Finansın Özellikleri

Bölgesellik: Oyuncu/marka yetki alanına göre yönlendirme; Ödeme bölgelerinin izolasyonu.
Kritik yollar (mevduat/çıkışlar): kısa zaman aşımları, bir tekrarlama, idempotency; Bireysel kümeler.
PSP/KYC: özel yukarı akış havuzları, sıkı yeniden deneme/zaman aşımı politikaları, devre kesici, coğrafi pimler.
AB kanalları: sadece okuma yolu için ödeme/limitlerle güvenli deneyler; yazmak - bayraklar ve küçük yüzdeler aracılığıyla.

16) Prod Hazırlık Kontrol Listesi

  • TLS 1. 2+/1. 3, OCSP zımbalama, HSTS; Doğru 'X-Forwarded-'.
  • Net yönlendirme kuralları: host/path/header/cookie; belgeler.
  • Sağlık kontrolleri, aykırı madde çıkarma, deneme başına zaman aşımı, sınırlı geri alma.
  • Ağırlıklı/kanarya + gölge; SLO/uyarı ile otomatik geri alma.
  • Önbellek/sıkıştırma/ETag; Gövde/üstbilgi sınırları; Birleştirme isteği.
  • 'trace _ id'ile günlükler/izler; KIRMIZI + aykırı/sağlık ölçümleri; Yol/küme başına gösterge panoları.
  • WAF/bot filtreleri/CORS; Büyük boy ve yavaş POST koruması.
  • Gerektiğinde yapışkan/tutarlı karma; Sıcak parça kontrolü.
  • Yapılandırmalar sürümlüdür, geçişler güvenlidir, KMS/Vault'taki sırlar.

17) TL; DR

Çevre üzerindeki TLS'yi sonlandırın ve host/path/header/cookie yoluyla L7'ye yönlendirin. Bültenleri için - ağırlıklı kanarya ve gölge; İstikrar için - sağlık kontrolleri, aykırı madde çıkarma, deneme başına zaman aşımı ile sınırlı yeniden deneme. Önbellek, sıkıştırma ve p95'i geliştirdiği tutarlı karma kullanın. KIRMIZI sinyalleri ve küme durumunu ölçün, WAF ve boyut sınırlarını tutun. Kritik ödeme yolları için - ayrı kümeler, kısa SLA'lar ve retras/idempotency'nin sıkı yönetimi.

Contact

Bizimle iletişime geçin

Her türlü soru veya destek için bize ulaşın.Size yardımcı olmaya her zaman hazırız!

Entegrasyona başla

Email — zorunlu. Telegram veya WhatsApp — isteğe bağlı.

Adınız zorunlu değil
Email zorunlu değil
Konu zorunlu değil
Mesaj zorunlu değil
Telegram zorunlu değil
@
Telegram belirtirseniz, Email’e ek olarak oradan da yanıt veririz.
WhatsApp zorunlu değil
Format: +ülke kodu ve numara (örneğin, +90XXXXXXXXX).

Butona tıklayarak veri işlemenize onay vermiş olursunuz.