GH GambleHub

Straturi proxy și rutare inversă

Scurt rezumat

Stratul proxy este „autobuzul frontal” al platformei: completează TLS, certifică clienții, distribuie traficul, netezește vârfurile și face eliberarea sigură (canari, albastru-verde). Set de maturitate minimă: stratificare clară a rolurilor proxy, reguli de rutare deterministe, control timeout/retray, cache + rate-limit, observabilitate și automatizare end-to-end.

Taxonomie proxy

Proxy forward - trafic exterior de clienți/servicii în afara (ieșire), filtre/oglindire, DLP.
Proxy inversă - acceptă cereri externe și rute către backend (accentul nostru principal).

Straturi în calea de producție:

1. Edge/CDN/WAF (Anycast, filtre bot, memorie cache)

2. L7 Ingress/API-gateway (rutare, autentificare, politici)

3. Service Layer/Mesh (sidecar) pentru est-vest, mTLS și Retras

4. Gateway-ul de ieşire pentru integrarea în exterior (PSP, parteneri)

Rutare (L4/L7) și algoritmi

L4 (TCP/UDP, passthrough TLS): întârziere minimă, fără a înțelege HTTP.
L7 (HTTP/1. 1, HTTP/2, HTTP/3/gRPC): host/path/header/cookie reguli, transformare, WAF, cache.

Algoritmi:
  • Round-robin/Cele mai puține conexiuni/EWMA - cazuri comune.
  • Consistent-hash (prin cookie/identificator) - sesiuni lipicioase și localitatea cache.
  • Header-/Geo-/Latency-based - direcționare după regiune/furnizor, PoPs rapid.
  • Canare/ponderat - eliminare treptată (5→25→50→100%).
  • Shadow/Mirroring - o copie a traficului către un nou serviciu fără a afecta răspunsurile.

Interogare/Transformarea răspunsului

URL-ul rescrie/redirecționează: unifică căi, versioning ('/v1/ →/svc/v1/').
Antete: normalizați "X-Forwarded-For/Proto/Host", adăugați "traceparent "/" x-request-id', filtru inutil.
CORS/CSRF: centralizați în gateway, nu produceți setări în fiecare serviciu.
Compresie/decompresie: Brotli/gzip, control după tip.
Limitele corporale și protecția împotriva anteturilor slowloris/supradimensionate.

Autentificare și securitate

TLS 1. 3 + OCSP capsare + HSTS pe fronturi externe.
mTLS: administratori, API-uri operaționale, canale partenere.
OAuth2/OIDC: autorizare prin gateway (introspecție token/verificare JWT) → transmiterea către revendicări în amonte.
API Keys/Signatures (HMAC) pentru integrări încrucișate și partenere.
Filtre WAF/bot: semnături + reguli comportamentale, greypass/captcha.
CSP/X-Frame-Options/Referrer-Policy - anteturi de securitate la margine.

Fiabilitate: Retras/Timeouts/TT

Timeouts: connect/read/write on the L4/L7, single policy (de exemplu, 'connect 500ms',' read 3-5s 'for API).
Retroactive: numai idempotent ('GET/HEAD'), limita de timp/cantitate,' retry-budget '.
Întrerupător de circuit: restricții privind cererile/erorile simultane, eșecul rapid și degradarea.
Detectarea exterioară - exclude cazurile rele din piscină.
Backoff + jitter: pentru a nu crea un „efect de turmă”.

Cache și managementul traficului

Cache L7: static/semi-dinamic (cataloage, configurații), 's-maxage' + 'stale-while-revalidate'.
Rate-limit/cotă: prin IP/ASN/dispozitiv/cookie, contor distribuit (Redis/Rate-service).
Sesiuni lipicioase: cookie/consistent-hash; luați în considerare eșecul și „re-lipirea”.
Colapsul cererii (dedupe): protejarea originii de o „furtună” de GET-uri identice.

Protocoale și caracteristici

HTTP/2: multiplexare, priorități; țineți „ALPN: h2”.
HTTP/3/QUIC: pierdere/rezistență la bruiaj; deschideți UDP/443, monitorizați MTU/PMTUD.
gRPC: controale de sănătate, streaming, termene limită; proxie-urile trebuie să suporte 'grpc-status'.
WebSocket/SSE: conexiuni de lungă durată, termene și limite competente.

Observabilitate și SLO

Măsurători:
  • L4/L7: 'p50/p95/p99', ошибки ('4xx/5xx/Grpc-coduri'), 'open _ conn',' CPS/RPS ',' retry _ rate '.
  • TLS: versiune/cifre, strângere de mână p95, reluare.
  • Rutare: acțiuni după rută/cluster, outlier-ejections.
  • Rata-limită/WAF: declanșează/rata FP.
  • Jurnale: acces (fără PII), motive de rutare, anteturi de urme.
  • Urme: „traceparent ”/B3, prelevare de probe.
SLO (exemple):
  • p95 TTFB API ≤ 250-300 ms; eroare L7 ≤ 0. 5%.
  • Succesul canarilor (fără degradarea metricii) ≥ 99% din lansări.
  • Rata FP WAF ≤ 0. 1%.

Configurații tipice

Nginx (proxy invers, HTTP/2, canar, compresie)

nginx map $http_x_canary $upstream_pool {
default "stable";
~^1$ "canary";
}

upstream api_stable { zone zst 64k; server 10. 0. 1. 10:8443; server 10. 0. 1. 11:8443; keepalive 256; }
upstream api_canary { zone zcn 64k; server 10. 0. 2. 10:8443; keepalive 64; }

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

ssl_protocols TLSv1. 2 TLSv1. 3;
ssl_stapling on; ssl_stapling_verify on;
add_header Strict-Transport-Security "max-age=31536000" always;

basic limits/protection client_max_body_size 10m;
sendfile on; brotli on; gzip on;

location / {
proxy_http_version 1. 1;
proxy_set_header Host $host;
proxy_set_header X-Request-Id $request_id;
proxy_set_header X-Forwarded-Proto https;
proxy_connect_timeout 500ms;
proxy_read_timeout 5s;
proxy_next_upstream error timeout http_502 http_503 http_504;
proxy_next_upstream_tries 1; # Retrays are limited to proxy_pass https://api_$upstream_pool;
}
}

HAProxy (JWT-verify + mTLS la backend + rate-limit)

haproxy frontend fe_https bind:443 ssl crt /etc/haproxy/certs/ alpn h2,http/1. 1 http-request set-header X-Request-Id %[unique-id]
http-request lua. jwt_verify # external verification script JWT stick-table type ip size 1m expire 10m store http_req_rate (10s)
http-request deny if { src_http_req_rate(10s) gt 100 }

default_backend be_api

backend be_api balance roundrobin option httpchk GET /healthz server s1 10. 0. 1. 10:8443 check ssl verify required ca-file /etc/haproxy/ca. pem server s2 10. 0. 1. 11:8443 check ssl verify required ca-file /etc/haproxy/ca. pem

Trimisul (JWT + trasee ponderate + detectare outlier)

yaml static_resources:
listeners:
- name: https address: { socket_address: { address: 0. 0. 0. 0, port_value: 443 } }
filter_chains:
- filters:
- name: envoy. filters. network. http_connection_manager typed_config:
"@type": type. googleapis. com/envoy. extensions. filters. network. http_connection_manager. v3. HttpConnectionManager stat_prefix: ingress route_config:
virtual_hosts:
- name: api domains: ["api. example. com"]
routes:
- match: { prefix: "/" }
route:
weighted_clusters:
clusters:
- { name: api-stable, weight: 95 }
- { name: api-canary, weight: 5 }
http_filters:
- name: envoy. filters. http. jwt_authn typed_config: { "@type": type. googleapis. com/envoy. extensions. filters. http. jwt_authn. v3. JwtAuthentication }
- name: envoy. filters. http. router clusters:
- name: api-stable connect_timeout: 0. 5s type: STRICT_DNS lb_policy: ROUND_ROBIN outlier_detection: { consecutive_5xx: 3, interval: 2s, base_ejection_time: 30s }
transport_socket:
name: envoy. transport_sockets. tls
- name: api-canary connect_timeout: 0. 5s type: STRICT_DNS lb_policy: ROUND_ROBIN transport_socket:
name: envoy. transport_sockets. tls

Traefik (rute bazate pe reguli, concept)

yaml http:
routers:
api:
rule: "Host(`api. example. com`) && PathPrefix(`/v1/`)"
service: api-svc tls: { certResolver: letsencrypt }
services:
api-svc:
loadBalancer:
servers:
- url: "https://10. 0. 1. 10:8443"
- url: "https://10. 0. 1. 11:8443"

Performanță proxy

Punerea în comun a conexiunii și păstrarea bazelor, limita de conectare pe instanță.
Reutilizare, pin CPU/IRQ, suficiente tampoane socket.
TLS: ECDSA + lanțuri scurte, reluarea ≥ 70%, HTTP/2/3 activat.
Cache în proxy pentru răspunsurile „fierbinți” (inclusiv validarea 304).
Încălzire: încălzirea conexiunilor DNS/TLS/înainte de vârfuri.

DR și toleranța la erori

Îndepărtarea automată a nodurilor degradate („ejecție exterioară”).
L4/L7 de verificare a sănătății (token-ul versiunii corporale HTTP).
Fail-open/Fail-închise - alege în mod conștient pentru plată/căi critice.
Modul umbră înainte de trecerea traficului la un nou serviciu.
Runbooks: „prăbușirea clusterului”, „redirecționarea buclei”, „scurgeri de conexiune”, „furtună retrasă”.

Lista de verificare a implementării

  • Stratificare: Edge → Ingress/API-GW → Mesh/Egress, roluri și responsabilități.
  • Politici de rutare: gazdă/cale/antet/greutate, canar/albastru-verde, umbră.
  • Securitate: TLS 1. 3, mTLS pentru căi sensibile, JWT/OAuth2, WAF.
  • Timeouts/Retroys/CB: valori uniforme, idempotenta, retry-buget.
  • Cache/Rate-limit/Request-colapsing acolo unde este cazul.
  • Observabilitate: metrici/busteni/trasee, identificatori de corelare.
  • SLO: p95/erori/resurse; alerte la eșecuri perimetrale.
  • IaC/GitOps: configurații proxy depozit, eliberări canare, rollback rapid.
  • Teste: rute e2e, scripturi haos, încărcare înainte de evenimente.

Erori comune

Un „magic” proxy harvester fără separarea rolurilor → RCA complex și raza mare de explozie.
Retrăiri pentru interogări non-idempotente → tranzacții duplicate.
Fără normalizare antet/URL → cache-otrăvire și chei rele.
Sesiuni lipicioase fără planuri de eșec → lipirea pe o instanță degradată.
Lipsa "traceparent "/" x-request-id' → nu poate corela problemele.
Hard 301/302 la nivelul proxy → bucle și pierderea controlului versiunii API.

iGaming/fintech specific

Plăți/PSP: gateway-ul de ieșire dedicat cu mTLS, timeout-uri stricte, chei idempotente, liste albe IP/ASN.
Vârfuri (meciuri/turnee): canar/ponderat, trasee gri pentru roboți, memorie cache GET agresivă, apărare de origine împotriva „furtunii”.
Regulament/logare: fixați versiuni de politică și motive de traseu în jurnalele de audit; minimiza PII.
Furnizori de conținut: cheie consistentă de furnizor pentru localitatea cache și chiar distribuție.

Mini playbook-uri

1) Eliberarea API Canare

1. Include 5% greutate pe „api-canar”; 2) p95/monitorizarea erorilor; 3) extinderea cotei; 4) auto-rollback în timpul degradării.

2) Îndepărtarea de urgență a nodului degradat

1. Outlier-ejectare sau manual „scurgere”; 2) verificarea piscinei și lovirea memoriei cache; 3) RCA post-incident.

3) Oglindirea funcției

1. Activați umbra fără a afecta răspunsurile; 2) compara metrici/răspuns diff; 3) decide cu privire la comutare.

4) Furtună din spate

1. Reducerea bugetului/termenelor limită; 2) activați colapsul cererii; 3) cioturi/cache locale; 4) stabiliza originea.

Rezultat

Un strat proxy bine conceput este separarea rolurilor, rutarea deterministă, politicile de încredere (timeout/retrays/CB), securitatea (mTLS/JWT/WAF) și observabilitatea. Configurații PIN pentru IaC, utilizați canare și umbre, măsurați SLO - iar platforma dvs. va fi scalabilă, previzibilă și sigură chiar și în cele mai fierbinți ore de vârf.

Contact

Contactați-ne

Scrieți-ne pentru orice întrebare sau solicitare de suport.Suntem mereu gata să ajutăm!

Pornește integrarea

Email-ul este obligatoriu. Telegram sau WhatsApp sunt opționale.

Numele dumneavoastră opțional
Email opțional
Subiect opțional
Mesaj opțional
Telegram opțional
@
Dacă indicați Telegram — vă vom răspunde și acolo, pe lângă Email.
WhatsApp opțional
Format: cod de țară și număr (de exemplu, +40XXXXXXXXX).

Apăsând butonul, sunteți de acord cu prelucrarea datelor dumneavoastră.