GH GambleHub

Proxy қабаттары және кері бағыттау

Қысқаша түйіндеме

Прокси-қабат - платформаның «алдыңғы шина»: ол TLS аяқтайды, клиенттерді куәландырады, трафикті таратады, шыңдарды тегістейді және шығаруды қауіпсіз етеді (канарейка, blue-green). Жетілудің ең аз жиынтығы: прокси-рольдердің нақты стратификациясы, бағыттаудың детерминирленген ережелері, таймауттарды/ретрайларды бақылау, кэш + rate-limit, толассыз бақылау және автоматтандыру.

Прокси таксономиясы

Forward proxy - клиенттердің/сервистердің сыртқа шығатын трафигі (egress), сүзгілер/зеркалау, DLP.
Reverse proxy - сыртқы сұрауларды қабылдайды және бэкендерге бағыттайды (біздің негізгі фокусымыз).

Прод-контурдағы қабаттар:

1. Edge/CDN/WAF (Anycast, бот-сүзгілер, кэш)

2. L7 Ingress/API-gateway (бағыттау, аутентификация, саясат)

3. east-west, mTLS және ретрайлерге арналған сервистік қабат/Mesh (sidecar)

4. Шығыс интеграцияларына арналған Egress-gateway (PSP, серіктестер)

Бағыттау (L4/L7) және алгоритмдер

L4 (TCP/UDP, passthrough TLS): HTTP түсініксіз ең аз кідіріс.
L7 (HTTP/1. 1, HTTP/2, HTTP/3/gRPC): host/path/header/cookie, трансформация, WAF, кэш ережелері.

Алгоритмдер:
  • Round-robin/Least-connections/EWMA - жалпы жағдайлар.
  • Consistent-hash (cookie/идентификатор бойынша) - sticky-сессиялар және кэш-локальдығы.
  • Header-/Geo-/Latency-based - өңірлер/провайдерлер бойынша таргетинг, жылдам PoP.
  • Canary/Weighted - кезең-кезеңімен rollout (5 → 25 → 50 → 100%).
  • Shadow/Mirroring - жауаптарға әсер етпейтін жаңа қызметке трафиктің көшірмесі.

Сұрауларды/жауаптарды трансформациялау

URL rewrite/redirect: жолдарды біріздендіру, нұсқалау ('/v1/→/svc/v1/').
Тақырыптар: 'X-Forwarded-For/Proto/Host' дегенді қалыпқа келтіріңіз, 'traceparent '/' x-request-id' дегенді қосыңыз, артық сүзіңіз.
CORS/CSRF: gateway жүйесінде орталықтандырыңыз, әрбір сервисте баптауларды көбейтпеңіз.
Compression/Decompression: Brotli/gzip, түрлері бойынша бақылау.
Body-limits және slowloris/oversized headers қорғанысы.

Аутентификация және қауіпсіздік

TLS 1. 3 + OCSP stapling + HSTS сыртқы фронттарда.
mTLS: әкімшілер, операциялық API, серіктестік арналар.
OAuth2/OIDC: gateway (token introspection/JWT-verify) → claims upstream.
Сервистік және серіктестік интеграциялар үшін API-кілттер/қолтаңбалар (HMAC).
WAF/бот-сүзгілер: белгі + мінез-құлық ережелері, greypass/капча.
CSP/X-Frame-Options/Referrer-Policy - шетіндегі security-тақырыптар.

Сенімділік: ретрациялар/таймауттар/СВ

Таймауттар: L4/L7 connect/read/write, бірыңғай саясат (мысалы, 'connect 500ms', 'read 3-5s' API үшін).
Ретраилер: тек демпотенттік ('GET/HEAD'), уақыт/сан бойынша лимит, 'retry-budget'.
Circuit-breaker: бір уақыттағы сұрауларға/қателерге шектеулер, жылдам істен шығу және тозу.
Outlier detection: «жаман» даналарды пулдан алып тастау.
Backoff + jitter: «табын әсерін» жасамау үшін.

Кэш және трафикті басқару

L7 кэші: статика/жартылай динамика (каталогтар, конфигалар), 's-maxage' + 'stale-while-revalidate'.
Rate-limit/Quota: IP/ASN/device/cookie бойынша, бөлінген есептеуіш (Redis/Rate-service).
Sticky-сессиялар: cookie/consistent-hash; failover және «қайта жабыстыруды» ескеріңіз.
Request collapsing (dedupe): origin бірдей GET «дауылынан» қорғау.

Хаттамалар мен ерекшеліктер

HTTP/2: мультиплексиялау, басымдықтар; сақтаңыз 'ALPN: h2'.
HTTP/3/QUIC: жоғалтуға/джиттерге төзімділік; UDP/443 ашыңыз, MTU/PMTUD бағдарламасын қадағалаңыз.
gRPC: health-checks, streaming, deadlines; 'grpc-status' проксиін қолдауы керек.
WebSocket/SSE: long-lived коннектілері, сауатты idle-таймауттар мен лимиттер.

Бақылау және SLO

Өлшемдері:
  • L4/L7: `p50/p95/p99`, ошибки (`4xx/5xx/Grpc-codes`), `open_conns`, `CPS/RPS`, `retry_rate`.
  • TLS: нұсқа/шифрлар, p95 handshake, resumption.
  • Маршруттау: route/cluster, outlier-ejections бойынша үлестер.
  • Rate-limit/WAF: іске қосылу/FP-rate.
  • Логи: қолжетімділік (PII жоқ), бағыттау себептері, трассалау тақырыптары.
  • Трестер: 'traceparent '/B3, сэмплеу.
SLO (мысалдар):
  • p95 TTFB API ≤ 250-300 мс; L7 ≤ 0 қатесі. 5%.
  • Канареялардың табысы (метриктердің тозуынсыз) ұшырулардың 99% -ын ≥.
  • FP-rate WAF ≤ 0. 1%.

Үлгілік конфигалар

Nginx (reverse proxy, HTTP/2, канарейка, сығу)

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 бэкендке + 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

Envoy (JWT + weighted routes + outlier detection)

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 (rule-based бағыттары, тұжырымдамасы)

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"

Прокси өнімділігі

Бэкендерге connection pooling және keepalive, инстанцияға коннектердің лимиті

Reuseport, pin CPU/IRQ, сокеттердің жеткілікті буферлері.
TLS: ECDSA + қысқа тізбектер, resumption ≥ 70%, HTTP/2/3 қосылған.
«Ыстық» жауаптарға арналған проксидегі кэш (оның ішінде 304-валидация).
Warm-up: шыңдар алдында DNS/TLS/коннектілерді жылыту.

DR және істен шығуға төзімділік

Тозған тораптардың автожабдығы ('outlier-ejection').
Health-checks L4/L7 (HTTP body-маркер нұсқасы).
Fail-open/Fail-closed - төлем/сыни жолдар үшін саналы түрде таңдаңыз.
Трафикті жаңа қызметке ауыстыру алдында Shadow режимі.
Runbooks: «кластердің құлауы», «директорлардың ілмегі», «коннектілердің жылыстауы», «ретрайлардың дауылы».

Енгізу чек-парағы

  • Стратификация: Edge → Ingress/API-GW → Mesh/Egress, рөлдері және жауапкершілік шегі.
  • Бағдар саясаты: host/path/header/weight, canary/blue-green, shadow.
  • Қауіпсіздік: TLS 1. 3, mTLS сезімтал жолдар, JWT/OAuth2, WAF үшін.
  • Таймауттар/ретраилер/СВ: бірыңғай мәндер, теңсіздік, retry-budget.
  • Кэш/Rate-limit/Request-collapsing орынды жерде.
  • Бақылау қабілеті: метрика/логи/трейстер, correlation-сәйкестендіргіштер.
  • SLO: p95/қателер/ресурстар; периметрлік іркілістерге алаңдар.
  • IaC/GitOps: репозиторийдегі прокси конфигі, канареялық релиздер, жылдам rollback.
  • Тесттер: e2e-бағыттар, chaos-сценарийлер, іс-шаралар алдындағы жүктеме.

Типтік қателер

Рөлдерді бөлусіз «сиқырлы» прокси-комбайн → күрделі RCA және жоғары blast-радиусы.
Демпотенттік емес сұрау ретрайлері → транзакция көшірмелері.
Тақырып/URL → cache-poisoning және дұрыс емес кілттер жоқ.
Sticky-сессиялар жоспарсыз failover → деградациялық инстанцияда жабысқақ.
'traceparent '/' x-request-id' → жоқ.
Прокси деңгейіндегі қатты 301/302 → «ілмектер» және API нұсқаларын бақылауды жоғалту.

iGaming/финтех ерекшелігі

Төлемдер/PSP: mTLS-мен бөлінген egress-gateway, қатаң таймауттар, демпотенттік кілттер, IP/ASN ақ тізімдері.
Шыңдар (матчтар/турнирлер): canary/weighted, боттар үшін сұр маршруттар, агрессивті GET кеші, origin «дауылдан» қорғау.
Реттеуіш/логика: саясат нұсқаларын және бағыт себептерін аудит-логтарда белгілеңіз; PII-ні барынша азайтыңыз.
Контент провайдерлері: кэш-локальдылық және тегіс тарату үшін провайдерлік кілт бойынша consistent-hash.

Шағын ойнатқыштар

1) Канар релизі API

1. 'api-canary' -де 5% салмақты қосу; 2) р95/қателер мониторингі; 3) үлесті кеңейтуге; 4) тозу кезіндегі автооткат.

2) Тозу торабын шұғыл алып тастау

1. Outlier-ejection немесе қол 'drain'; 2) кештің пулы мен хитін тексеру; 3) инциденттен кейінгі RCA.

3) Функцияны зеркалау

1. Жауаптарға әсер етпей shadow бағдарламасын қосу; 2) жауаптардың метрикасын/диффін салыстыру; 3) ауыстырып қосу туралы шешім қабылдау.

4) Ретрайлардың дауылы

1. retry-budget/уақытша лимиттерді төмендету; 2) request-collapsing қосылсын; 3) жергілікті бітеуіштер/кэш; 4) origin тұрақтандыру.

Жиынтық

Жақсы жобаланған прокси қабаты - бұл рөлдерді бөлу, детерминирленген бағыттау, сенімді саясат (таймауттар/ретраилер/СВ), қауіпсіздік (mTLS/JWT/WAF) және бақылау. Конфигурацияларды IaC-ге бекітіңіз, канареялар мен shadow-ды пайдаланыңыз, SLO-ны өлшеңіз - және сіздің платформаңыз ең ыстық шыңдалған сағаттарда да масштабталады, болжанады және қорғалады.

Contact

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

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

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

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

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

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