GH GambleHub

پروکسی معکوس و مسیریابی

1) نقش پروکسی معکوس

پروکسی معکوس - «خط مقدم» پلت فرم: TLS را قبول می کند، ترافیک را بین بالادست توزیع می کند، سیاست های امنیتی و عملکرد را اعمال می کند. هدف تاخیر حداقل، مسیریابی قابل پیش بینی و جداسازی سریع موارد/مناطق تخریب شده است.

2) لایه ها و پروتکل ها

L4: پروکسی TCP/UDP (گذرگاه TLS مبتنی بر SNI، QUIC). قیمت پایین، بدون درک HTTP.
L7: HTTP/1 1-2-3، gRPC، WebSocket. مسیریابی غنی (میزبان، مسیر، هدر، کوکی ها)، تبدیل و حافظه پنهان.

مدل TLS: خاتمه در محیط (NGINX/Envoy)، در داخل - mTLS/مش. SNI اجازه می دهد تا میزبان مجازی در همان IP.

3) استراتژی های مسیریابی (L7)

1. میزبان مبتنی بر: توسط دامنه ('api. نام تجاری. com '→ خوشه' نام تجاری api ').
2. مبتنی بر مسیر: '/v1/payments '→' payments-svc ', '/v1/wallets' → 'wallets-svc'.
3. مبتنی بر هدر: «منطقه X: eu-central»، «X-Tenant: 42»، «User-Agent »/« Accept».
4. مبتنی بر کوکی: تست A/B، جلسات چسبنده.
5. Weighted/Canary: درصد ترافیک به نسخه جدید (1-5٪ → 100٪).
6. Geo/ASN: توسط کشور/ASN به نزدیکترین POP/منطقه ارسال می شود.
7. هش سازگار: اتصال یک کلید (user_id/tenant_id) به یک نمونه → محل کش/چسبندگی.
8. Shadow/Mirroring: ترافیک را به سمت بالادست «سایه» کپی می کند بدون تاثیر پاسخ (برای آزمون های رگرسیون).

4) تعادل و تحمل خطا

الگوریتم: گرد رابین، حداقل درخواست، تصادفی، حلقه هش (سازگار).
چک های بهداشتی: فعال (HTTP/TCP) + منفعل (توسط کد/زمان).
Exhection outlier: به طور موقت «دست کشیدن» میزبان با افزایش خطا/تاخیر.
تلاش مجدد: محدود، با هر بار امتحان کردن و لرزش ؛ روشهای ناامن را بدون idempotency رد نکنید.
جمع آوری اتصال: استخرهای گرم را به بالادست نگه دارید، حداکثر حد.

5) عملکرد محیطی

ذخیره سازی: با کلید (روش + میزبان + مسیر + Vary)، شرایط ETag/If-None-Match، TTL و stale-while-revalidate.
فشرده سازی: brotli/gzip برای پاسخ های متن.
HTTP/2/3: چندگانه، فشرده سازی هدر ؛ بررسی سازگاری WAF/IDS.
Request coalescing - درخواست های همزمان برای همان کلید کش را از بین می برد.

6) امنیت در پروکسی

TLS: 1. 2 + (بهتر از 1) 3)، مهر و موم OCSP، HSTS.
فیلترهای WAF/bot: قبل از مسیریابی به برنامه.
CORS/CSP/واکشی-ابرداده: به عنوان در هر سیاست.
Header- гигиена: «X-Forwarded-For/Proto»، «Forwarded»، «traceparent» ؛ هدر تزریق و حفاظت بیش از حد.
محدودیت های بدن/هدر: در اوایل 413/431 برای الگوهای DoS.
mTLS برای ادغام شرکا و API های داخلی.

7) استقرار طرح: قناری/آبی سبز/نسخه

مسیریابی وزنی на سطح 7 (1٪، 5٪، 25٪، 50٪، 100٪).
Header-gate: ویژگی را با پرچم/هدر (داخلی/تست) فعال کنید.
آبی سبز: تغییر کامل DNS/مسیر، بازگشت سریع.
Shadow: اجرای موازی نسخه جدید با ورود معیارها/سیاهههای مربوط.

8) جلسات چسبنده و مسیریابی هش

چسبندگی کوکی ('تنظیم کوکی: SRV = shard-a; مسیر =/; HttpOnly ') برای بارهای stateful.
حلقه هش/سازگار با 'user _ id/tenant _ id' - کاهش کش متقابل ناتوانی.
احتیاط: اجتناب از چسبندگی «ابدی» برای نوشتن بار → نقطه داغ ؛ از یک مستاجر سهمیه ای استفاده کنید.

9) مسیریابی منطقه ای و جغرافیایی

Anycast + geo-DNS برای انتخاب نزدیکترین POP.
Header-override (به عنوان مثال، «منطقه X») برای آزمایش و اشکال زدایی.
هماهنگی با محلی سازی داده های قانونی مورد نیاز (مسیر توسط منطقه/صلاحیت).

10) قابلیت مشاهده و کنترل

معیارهای RED: RPS، نرخ خطا (توسط کلاس)، تاخیر p95/p99 در هر مسیر/خوشه.
Outlier/health: تعداد ویرایش ها/recloses، نرخ تماس آهسته.
سیاهههای مربوط: ساختار، بدون PII ؛ همبستگی 'trace _ id '/' span _ id'.
ردیابی (OTel): دهانه ورودی → روتر → بالادست ؛ نمونه در نمودار P99.

11) نمونه های پیکربندی

11. 1 NGINX: میزبان/مسیر/وزن + кэш

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 نماینده: مسیریابی هدر، قناری، تخلیه بیرونی، آینه کاری

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: قوانین + میان افزار

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: ورود + مانیفست برای قناری (NGINX ورود)

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) تحولات و سازگاری

نرمال سازی هدر ها/مسیرها، سرشماری «مکان»، کنترل «Cache-Control».
gRPC ↔ HTTP/JSON از طریق مترجمان (grpc-json-transcoder).
WebSocket/HTTP2 upgrades - اطمینان حاصل کنید که پروکسی از «Upgrade »/« Connection» پرش می کند.

13) سناریوهای تست و هرج و مرج

بارگیری: انفجار، فلات طولانی، بدن «طولانی» (آهسته POST).
تزریق تأخیر/زیان به بالادست → تلاش مجدد/اتمام وقت/بررسی بیرونی.

معیارهای قناری: p95/p99، نرخ خطای نسخه جدید در مقابل قدیمی ؛ بازگشت خودکار توسط SLO

سایه: مقایسه پاسخ ها (نمونه برداری) و منطق جانبی.

14) ضد گلوله

عقب نشینی جهانی به استثنای idemotency و مهلت → دو برابر و طوفان.
جلسات چسبنده بدون کنترل داغ → بار بار.
فقدان سلامت چک/outlier-ejection → موارد «فاسد» در استخر.
سرصفحه/بدنه نامحدود → ساده ترین DoS.
مخلوط کردن تحولات و امنیت بدون نسخه طرح → رگرسیون های غیر منتظره.

یک حافظه نهان کلید جهانی بدون «Vary» → پاسخ های نادرست

15) ویژگی های iGaming/امور مالی

منطقه: مسیریابی توسط بازیکن/نام تجاری صلاحیت ؛ جداسازی مناطق پرداخت

مسیرهای بحرانی (سپرده/خروجی): مدت زمان کوتاه، یک تکرار، idempotency ؛ خوشه های فردی

PSP/KYC: استخرهای بالادست اختصاصی، سیاست های مجدد/زمان بندی دقیق، قطع کننده مدار، پین های جغرافیایی.
کانال های AB: آزمایش های ایمن با پرداخت/محدودیت فقط برای مسیر خواندن ؛ نوشتن - از طریق پرچم ها و درصد های کوچک.

16) تولید لیست آمادگی

  • TLS 1. 2+/1. 3، مهر و موم OCSP، HSTS ؛ «X-Forwarded» صحیح است.
  • پاک کردن قوانین مسیریابی: میزبان/مسیر/هدر/کوکی ؛ مستندات.
  • سلامت چک، outlier-ejection، در هر زمان سعی کنید، retrays محدود است.
  • وزن/قناری + سایه ؛ بازگشت خودکار توسط SLO/هشدار.
  • کش/فشرده سازی/ETag ؛ محدودیت های بدن/هدر ؛ درخواست ائتلاف.
  • سیاهههای مربوط/مسیرهای پیاده روی با 'trace _ id' ؛ معیارهای RED + outlier/health داشبورد در هر مسیر/خوشه.
  • فیلترهای WAF/ربات/CORS ؛ حفاظت بیش از حد و آهسته POST.
  • درهمسازی چسبنده/سازگار که در آن مورد نیاز ؛ کنترل داغ شارد.
  • پیکربندی ها نسخه بندی می شوند، مهاجرت ها امن هستند، اسرار در KMS/Vault.

17) TL ؛ دکتر متخصص

خاتمه TLS در محیط و مسیر به L7 از طریق میزبان/مسیر/هدر/کوکی. برای انتشار - وزن قناری و سایه ؛ برای ثبات - بررسی سلامت, outlier-ejection, retries محدود با در هر سعی timeout. استفاده از کش، فشرده سازی و هش سازگار که در آن را بهبود می بخشد p95. سیگنال های RED و وضعیت خوشه را اندازه گیری کنید، WAF و محدودیت اندازه را نگه دارید. برای مسیرهای پرداخت بحرانی - خوشه های جداگانه، SLA های کوتاه و مدیریت دقیق retras/idempotency.

Contact

با ما در تماس باشید

برای هرگونه سؤال یا نیاز به پشتیبانی با ما ارتباط بگیرید.ما همیشه آماده کمک هستیم!

شروع یکپارچه‌سازی

ایمیل — اجباری است. تلگرام یا واتساپ — اختیاری.

نام شما اختیاری
ایمیل اختیاری
موضوع اختیاری
پیام اختیاری
Telegram اختیاری
@
اگر تلگرام را وارد کنید — علاوه بر ایمیل، در تلگرام هم پاسخ می‌دهیم.
WhatsApp اختیاری
فرمت: کد کشور و شماره (برای مثال، +98XXXXXXXXXX).

با فشردن این دکمه، با پردازش داده‌های خود موافقت می‌کنید.