GH GambleHub

Reversão proxy e rotação

1) Rol de reversível proxy

Revers proxy - «linha de frente» da plataforma: aceita TLS, distribui tráfego entre upstream e aplica políticas de segurança e desempenho. O objetivo é o mínimo de latência, a previsível rotação e o rápido isolamento de instâncias/áreas degradadas.

2) Camadas e protocolos

L4: TCP/UDP proxy (SNI-based TLS passthrough, QUIC). Preço baixo, sem ver HTTP.
L7: HTTP/1. 1–2–3, gRPC, WebSocket. Roteiro rico (host, path, headers, cookies), transformações e dinheiro.

Modelo TLS: terminar no perímetro (NGINX/Envoy) e mTLS/mesh no interior. O SNI permite hospedagens virtuais em um único IP.

3) Estratégias de roteiro (L7)

1. Host-based: por domínio ('api. brand. com '→ cluster' brand-api ').
2. Path-based: `/v1/payments` → `payments-svc`, `/v1/wallets` → `wallets-svc`.
3. Header-based: `X-Region: eu-central`, `X-Tenant: 42`, `User-Agent`/`Accept`.
4. Cookie-based: testes A/B, sessões «pegajosas».
5. Weighted/Canary: porcentagem de tráfego para a nova versão (1-5% → 100%).
6. Geo/ASN: Por país/ASN é enviado para o RR/região mais próxima.
7. Consent hasing: vinculação da chave (user _ id/tenant _ id) à instância → localite em dinheiro/pegajoso.
8. Shadow/Mirroring: Copiamos o tráfego no upstream «shadow» sem efeito sobre a resposta (para testes de regressão).

4) Equilíbrio e resistência a falhas

Algoritmos: round-robin, least-request, random, ring-hash.
Health-checks: ativos (HTTP/TCP) + passivos (por códigos/temporizações).
Outlier ejation: Temporariamente, «destrua» o host com maior erro/latência.
Retrees: restrito, com per-try timeout e jitter; não retrabalhar métodos inseguros sem idempotidade.
Connation pooling: mantenha as poulas warm para upstream, limitando as máximas.

5) Desempenho do perímetro

A chave (method + hostt + path + Vary), as condições 'ETag/If-None-Match', TTL e stale-while-revalidate.
Compressão: brotli/gzip para respostas de texto.
HTTP/2/3: multiplexação, header-compressão; certifique-se de que o WAF/IDS é compatível.
Request coalescing: contrate solicitações paralelas para a mesma chave de armazenamento.

6) Segurança no proxy

TLS: 1. 2 + (melhor 1. 3), OCSP stapling, HSTS.
Filtros WAF/bot: antes do roteiro em ups.
CORS/CSP/Fetch-Metadata: de acordo com os políticos.
Header-гигиена: `X-Forwarded-For/Proto`, `Forwarded`, `traceparent`; proteção contra header-inhation e oversize.
Body/headers limits: primeiros 413/431 para patterns DoS.
mTLS para associações de integração e API interna.

7) Esquemas de deploy: canary/blue-green/versões

Weighted routing на level-7 (1%, 5%, 25%, 50%, 100%).
Header-gate: habilite o fichá por bandeira/cabeçalho (internal/testing).
Blue-green: Alterna DNS/rota, rollback rápido.
Shadow: uma nova versão paralela com a gravação de métricas/logs.

8) Sessões de sticky e roading hash

Cookie-stickiness (`Set-Cookie: SRV=shard-a; Path=/; HttpOnly ') para cargas estateful.
Ring-hash/consistent por 'user _ id/tenant _ id' - reduz as deficiências cruzadas do cachê.
Aviso: evitar a pegação «eterna» para cargas write → hot-spot; use o per tenante da quota.

9) Regional e geo-rotação

Anycast + geo-DNS para selecionar o POP mais próximo.
Header-override (por exemplo, 'X-Region') para testes e depuração.
Alinhar com a localização de dados exigida por lei (rota por região/jurisdição).

10) Observabilidade e controle

Métricas RED: RPS, error-rate (por classe), latency p95/p99 per-road/cluster.
Outler/health: número de ejetos/reativações, slow-call-rate.
Logi: estruturados, sem PII; corelação 'trace _ id '/' span _ id'.
Tracing (OTel): span ingress→router→upstream; exemplars em gráficos p99.

11) Exemplos de configuração

11. 1 NGINX: host/path/weighted + кэш

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 Envoy: header-routing, canary, outlier-ejection, mirroring

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: rules + middleware

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: Ingress + manifesto para canary (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) Transformação e compatibilidade

Normalização de cabeçalhos/caminhos, Censo de Localização, Controle de Cachê-Controle.
gRPC ↔ HTTP/JSON através de transmissores (grpc-json-transcoder).
upgrades: certifique-se de que o proxy está omitindo 'Upgrade '/' Connect'.

13) Testes e cenários de caos

Cargas: burcas, plateias longas, corpos «longos» (slow-POST).
Injeção de atrasos/perdas para upstream → verificação retries/timeout/outlier.
Métricas Canary: p95/p99, error-rate nova versão vs antiga; rollback automático por SLO.
Shadow: comparação entre as respostas (semente) e a lógica side-by-side.

14) Antipattern

Retraias globais sem levar em conta idempotação e dedline → duplos e tempestade.
Sessões de sticky sem controle de chardes quentes → distorção de carga.
Falta de health-checks/outlier-ejation → instâncias «podres» na bala.
Títulos/corpos ilimitados → um DoS simples.
A mistura de transformações e segurança sem a versão de circuitos → regravações inesperadas.
Uma única chave global de kesh sem 'Vary' → respostas erradas.

15) Especificidades do iGaming/Finanças

Regionalidade: rotação por jurisdição do jogador/marca; Isolar as áreas de pagamento.
Rotas críticas (depósitos/conclusões): tempo curto, uma repetição, idempotidade; clusters individuais.
PSP/KYC: upstream-pool dedicados, políticas retry/timeout rigorosas, circuito-breaker, geo-pin.
Canais AB: experiências seguras com pagamentos/limites apenas para o caminho read; write - através de bandeiras e juros menores.

16) Folha de cheque pró-prontidão

  • TLS 1. 2+/1. 3, OCSP stapling, HSTS; correto 'X-Forwarded-'.
  • Regras de rotação claras: host/path/header/cookies; documentação.
  • Health-checks, outler-ejation, per-try timeout, retraias limitadas.
  • Weighted/canary + shadow; auto-rollback por SLO/alertas.
  • Caixa/compressão/ETag; limites body/headers; request coalescing.
  • Logs/trens com 'trace _ id'; métricas RED + outlier/health; dashboards per-road/cluster.
  • Filtros WAF/bot/CORS; proteção contra oversize e slow-POST.
  • Sticky/consistent hasing onde for necessário; Controlo hot-shards.
  • Configs são versionados, as migrações são seguras, os segredos no KMS/Vault.

17) TL; DR

Terminite o TLS no perímetro e rode em L7 por host/path/header/cookie. Para lançamentos - weighted canary e shadow; para a estabilidade - health-checks, outler-ejation, retrias limitadas com per-try timeout. Use dinheiro, compressão e consistent hasing onde isso melhora p95. Mede os sinais RED e o estado dos clusters, mantenha o WAF e os limites de tamanho. As rotas de pagamento críticas incluem clusters individuais, SLA curtos e gerenciamento rigoroso de retais/idumpotência.

Contact

Entrar em contacto

Contacte-nos para qualquer questão ou necessidade de apoio.Estamos sempre prontos para ajudar!

Iniciar integração

O Email é obrigatório. Telegram ou WhatsApp — opcionais.

O seu nome opcional
Email opcional
Assunto opcional
Mensagem opcional
Telegram opcional
@
Se indicar Telegram — responderemos também por lá.
WhatsApp opcional
Formato: +indicativo e número (ex.: +351XXXXXXXXX).

Ao clicar, concorda com o tratamento dos seus dados.