GH GambleHub

Кері прокси және бағыттау

1) Реверс-проксидің рөлі

Реверс-прокси - платформаның «алдыңғы сызығы»: TLS қабылдайды, трафикті апстримдер арасында бөледі, қауіпсіздік және өнімділік саясатын қолданады. Мақсаты - азып-тозатын инстанциялардың/аймақтардың ең аз жасырындылығы, болжамды бағытталуы және жылдам оқшаулануы.

2) Қабаттар мен хаттамалар

L4: TCP/UDP proxy (SNI-based TLS passthrough, QUIC). Төмен баға, түсініксіз HTTP.
L7: HTTP/1. 1–2–3, gRPC, WebSocket. Бай бағыттау (host, path, headers, cookies), трансформация және кэш.

TLS-модель: периметрде терминдеу (NGINX/Envoy), ішінде - mTLS/mesh. SNI бір IP виртуалды хосттарға мүмкіндік береді.

3) Бағыттау стратегиялары (L7)

1. Host-based: домен бойынша ('api. brand. com '→ кластер' 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: A/B-тесттер, «жабысқақ» сессиялар.
5. Weighted/Canary: жаңа нұсқасына трафик пайызы (1-5% → 100%).
6. Geo/ASN: ел бойынша/ASN жақын жердегі РОР/өңірге жібереміз.
7. Consistent hashing: кілтті (user_id/tenant_id) инстанцияға байланыстыру → кэш-локалитет/жабысқақтық.
8. Shadow/Mirroring: трафикті жауапқа әсер етпей «көлеңкелі» апстримге көшіреміз (регресс-тесттер үшін).

4) Теңгеру және істен шығу тұрақтылығы

Алгоритмдер: round-robin, least-request, random, ring-hash (consistent).
Health-checks: белсенді (HTTP/TCP) + пассивті (кодтар/таймауттар бойынша).
Outlier ejection: қателігі/жасырындылығы жоғары хостты уақытша «қағу».
Retries: шектеулі, per-try timeout және джиттермен; қауiпсiз әдiстердi идемпотенттiлiксiз ретке келтiруге болмайды.
Connection pooling: апстримдерге warm-пулдарды ұстау, максимумдарды шектеу.

5) Периметрдің өнімділігі

Кэштеу: кілт бойынша (method + host + path + Vary), 'ETag/If-None-Match', TTL және stale-while-revalidate шарттары.
Компрессия: мәтіндік жауаптар үшін brotli/gzip.
HTTP/2/3: мультиплексиялау, header-compression; WAF/IDS үйлесімділігіне көз жеткізіңіз.
Request coalescing: қатарлас сұрауларды бір кэш кілтіне аудару.

6) Проксидегі қауіпсіздік

TLS: 1. 2 + (жақсы 1. 3), OCSP stapling, HSTS.
WAF/бот-сүзгілер: апп.
CORS/CSP/Fetch-Metadata: саясаттарға сәйкес.
Header-гигиена: `X-Forwarded-For/Proto`, `Forwarded`, `traceparent`; header-injection және oversize қорғанысы.
Body/headers limits: DoS-паттерндер үшін ерте 413/431.
серіктестік интеграциялар және ішкі API үшін mTLS.

7) Деплой схемалары: canary/blue-green/нұсқалары

Weighted routing на level-7 (1%, 5%, 25%, 50%, 100%).
Header-gate: жалауша/тақырып бойынша фича қосу (internal/testing).
Blue-green: толығымен DNS/route, жылдам rollback.
Shadow: метриктер/логтар жазбасы бар жаңа нұсқаны параллельді жүгірту.

8) Sticky-сессиялар және хеш-маршруттау

Cookie-stickiness (`Set-Cookie: SRV=shard-a; Path=/; HttpOnly ') үшін stateful-жүктемелер.
Ring-hash/consistent бойынша 'user _ id/tenant _ id' - кэштің кросс-мүгедектігін азайту.
Ескерту: write жүктемелері үшін «мәңгілік» жабысқақтықты болдырмау → hot-spot; квота пер-тенантын пайдаланыңыз.

9) Өңірлік және гео-бағыттау

Anycast + гео-DNS жақын POP таңдау үшін.
Тесттер мен баптау үшін Header-override (мысалы, 'X-Region').
Деректерді заңнамалық талап етілетін оқшаулаумен (өңір/юрисдикция бойынша route) келісу.

10) Бақылау және бақылау

RED өлшемдері: RPS, error-rate (сыныптар бойынша), latency p95/p99 per-route/cluster.
Outlier/health: эджектердің/қайта қосылулардың саны, slow-call-rate.
Логи: PII-сыз құрылымдалған; 'trace _ id '/' span _ id' кореляциясы.
Трейсинг (OTel): ingress → router → upstream; p99 кестелеріндегі exemplars.

11) Конфигурация мысалдары

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 + 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) Трансформация және үйлесімділік

Тақырыптарды/жолдарды қалыпқа келтіру, 'Location' санағы, 'Cache-Control' басқару.
gRPC, HTTP/JSON арқылы (grpc-json-transcoder).
WebSocket/HTTP2 upgrades: прокси 'Upgrade '/' Connection' дегенді жіберіп алатынын тексеріңіз.

13) Тестілеу және хаос-сценарийлер

Жүктемелі: бурсттар, ұзын плато, «ұзын» дене (slow-POST).
Апстримдерге кідірістер/шығындар инъекциясы → тексеру retries/timeout/outlier.
Canary-метриктер: p95/p99, error-rate жаңа нұсқасы vs ескі; SLO бойынша автоматты rollback.
Shadow: жауаптар мен side-by-side-логиканы салыстыру.

14) Антипаттерндер

Жаһандық ретрациялар демпотенттілік пен мерзімділікті есептемегенде → дубль және дауыл.
Sticky-сессиялар бақылаусыз «ыстық» шардалар → жүктеме ауытқуы.
Пулда health-checks/outlier-ejection → «шіріген» инстанциялардың болмауы.
Лимитсіз тақырыптар/денелер → қарапайым DoS.
Схемалар нұсқасынсыз трансформациялар мен қауіпсіздікті араластыру → күтпеген регресстер.
'Vary' жоқ бірыңғай жаһандық кэш кілті → дұрыс емес жауаптар.

15) iGaming/Қаржы ерекшелігі

Аймақтық: ойыншының/брендтің юрисдикциясы бойынша бағыттау; төлем аймақтарын оқшаулау.
Сындарлы бағыттар (депозиттер/қорытындылар): қысқа таймауттар, бір қайталану, теңсіздік; жеке кластерлер.
PSP/KYC: бөлінген upstream пулы, қатаң retry/timeout саясаты, circuit-breaker, гео-пиндер.
AB-арналар: тек оқу жолы үшін төлемдермен/лимиттермен қауіпсіз эксперименттер; write - жалаулар мен шағын пайыздар арқылы.

16) Prod-дайындық чек-парағы

  • TLS 1. 2+/1. 3, OCSP stapling, HSTS; 'X-Forwarded-'.
  • Маршруттаудың нақты ережелері: host/path/header/cookie; құжаттама.
  • Health-checks, outlier-ejection, per-try timeout, шектелген ретрайлер.
  • Weighted/canary + shadow; SLO/алгоритмдер бойынша авто-rollback.
  • Кэш/компрессия/ETag; body/headers лимиттері; request coalescing.
  • 'trace _ id'; RED + outlier/health өлшемдері; per-route/cluster дашбордтары.
  • WAF/бот сүзгілері/CORS; oversize және slow-POST-тан қорғау.
  • Sticky/consistent hashing қажет жерде; hot-шардтарды бақылау.
  • Конфигтер нұсқаланады, көшу қауіпсіз, KMS/Vault құпиялары.

17) TL; DR

TLS-ті периметрде терминдеңіз және host/path/header/cookie арқылы L7-ге бағыттаңыз. Релиздер үшін - weighted canary және shadow; тұрақтылық үшін - health-checks, outlier-ejection, per-try timeout-пен шектелген retries. Бұл p95 жақсартатын жерде кэшті, компрессияны және consistent hashing пайдаланыңыз. RED сигналдарын және кластерлердің жағдайын өлшеңіз, WAF және өлшем лимиттерін ұстаңыз. Сындарлы төлем жолдары үшін - жекелеген кластерлер, қысқа SLA және ретраларды/идемпотенттілікті қатаң басқару.

Contact

Бізбен байланысыңыз

Кез келген сұрақ немесе қолдау қажет болса, бізге жазыңыз.Біз әрдайым көмектесуге дайынбыз!

Интеграцияны бастау

Email — міндетті. Telegram немесе WhatsApp — қосымша.

Сіздің атыңыз міндетті емес
Email міндетті емес
Тақырып міндетті емес
Хабарлама міндетті емес
Telegram міндетті емес
@
Егер Telegram-ды көрсетсеңіз — Email-ге қоса, сол жерге де жауап береміз.
WhatsApp міндетті емес
Пішім: +ел коды және номер (мысалы, +7XXXXXXXXXX).

Батырманы басу арқылы деректерді өңдеуге келісім бересіз.