GH GambleHub

الوكيل العكسي والتوجيه

1) دور الوكيل العكسي

الوكيل العكسي - «الخط الأمامي» للمنصة: يقبل TLS، ويوزع حركة المرور بين المنبع، ويطبق سياسات الأمن والأداء. والهدف هو الحد الأدنى من زمن الانتقال، والتوجيه الذي يمكن التنبؤ به، والعزل السريع للحالات/المناطق المهينة.

2) الطبقات والبروتوكولات

L4: TCP/UDP proxy (SNI-based TLS passthrough, QUIC). سعر منخفض، دون فهم HTTP.
L7: HTTP/1. 1-2-3، gRPC، WebSocket. التوجيه الغني (المضيف، المسار، الرؤوس، ملفات تعريف الارتباط)، التحولات والذاكرة المخبأة.

نموذج TLS: ينتهي على المحيط (NGINX/Envoy)، بالداخل - mTLS/الشبكة. يسمح SNI للمضيفين الافتراضيين على نفس IP.

3) استراتيجيات التوجيه (L7)

1. قائم على المضيف: حسب المجال ('api. العلامة التجارية. com' → cluster 'brand-api').
2. على أساس المسار: «/v1/payments' → »payments-svc«، »/v1/wallets' → «wallets-svc».
3. قائمة على الرأس: "X-Region: eu-central"، "X-Tenant: 42"، "User-Agent "/" Accept'.
4. يعتمد على ملفات تعريف الارتباط: اختبارات A/B، جلسات لزجة.
5. المرجح/الكناري: النسبة المئوية لحركة المرور إلى الإصدار الجديد (1-5٪ → 100٪).
6. Geo/ASN: حسب البلد/ASN المرسلة إلى أقرب ملوثات عضوية ثابتة/منطقة.
7. التجزئة المتسقة: ربط المفتاح (user_id/tenant_id) بمثال → منطقة التخزين المؤقت/اللزوجة.
8. Shadow/Mirroring: نسخ حركة المرور إلى المنبع «الظل» دون التأثير على الاستجابة (لاختبارات الانحدار).

4) الموازنة والتسامح مع الخطأ

الخوارزميات: round-robin، الأقل طلبًا، عشوائي، ring-hash (متسق).
الفحوصات الصحية: نشطة (HTTP/TCP) + سلبية (حسب الرموز/المهلات).
الطرد الخارجي: «ضرب» مضيف مؤقتًا مع زيادة الخطأ/زمن الكمون.
Retires: limited, with per-trip timeout and jitter; لا تتراجع عن الأساليب غير المأمونة دون حماقة.
تجمع الاتصال: حافظ على حمامات السباحة الدافئة في المنبع، وحد من الارتفاعات.

5) أداء المحيط

Caching: حسب المفتاح (الطريقة + المضيف + المسار + Vary)، شروط «ETag/If-None-Match»، TTL و while-whine-revalidate.
الضغط: brotli/gzip للردود النصية.
HTTP/2/3: تعدد الإرسال وضغط الرأس ؛ التحقق من توافق WAF/IDS.
اطلب دمج - انهار الطلبات المتزامنة لنفس مفتاح التخزين المؤقت.

6) الأمن على الوكيل

TLS: 1. 2 + (أفضل من 1. 3)، OCSP stapling، HSTS.
مرشحات WAF/bot: قبل التوجيه إلى التطبيق.
CORS/CSP/Fetch-Metadata: حسب السياسات.
гигиена الرئيسية: 'X-Forwerded-For/Proto' و 'Forwerded' و 'traceparent' ؛ الحقن بالرأس والحماية الكبيرة.
حدود الجسم/الرأس: أوائل 413/431 لأنماط DoS.
TLS لدمج الشركاء وواجهات برمجة التطبيقات الداخلية.

7) نشر المخططات: كناري/أزرق أخضر/إصدارات

التوجيه المرجح на المستوى 7 (1٪، 5٪، 25٪، 50٪، 100٪).
بوابة الرأس: تمكين الميزة بواسطة العلم/الرأس (داخلي/اختبار).
الأزرق الأخضر: تبديل DNS/الطريق الكامل، التراجع السريع.
الظل: تشغيل متوازي للنسخة الجديدة مع إدخال المقاييس/السجلات.

8) جلسات لزجة وتوجيه التجزئة

لزوجة ملفات تعريف الارتباط ('Set-Cookie: SRV = shard-a; المسار =/؛ HttpOnly ') للأحمال الفخمة.
Ring-hash/متسق بواسطة 'user _ id/tenant _ id' - تقليل الإعاقات المتقاطعة في ذاكرة التخزين المؤقت.
الحذر: تجنب اللزوجة «الأبدية» لأحمال الكتابة → البقعة الساخنة ؛ استخدم مستأجر حصة.

9) التوجيه الإقليمي والجغرافي

Anycast + geo-DNS لتحديد أقرب ملوثات عضوية ثابتة.
تجاوز الرأس (على سبيل المثال، «منطقة X») للاختبارات والتصحيح.
التنسيق مع تحديد مواقع البيانات المطلوبة قانونا (المسار حسب المنطقة/الولاية القضائية).

10) إمكانية الرصد والتحكم

المقاييس الحمراء: RPS، معدل الخطأ (حسب الفئة)، الكمون p95/p99 لكل مسار/مجموعة.
الاستبعاد/الصحة: عدد عمليات التعديل/إعادة الغلق، معدل النداء البطيء.
جذوع الأشجار: هيكلية، بدون دليل استثمار الاستثمار ؛ الارتباط 'trace _ id '/' span _ id'.
التعقب (OTEL): يمتد ingress→router→upstream ؛ نماذج على الرسوم البيانية 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: Ingress + manifesto for 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) التحولات والتوافق

تطبيع الرؤوس/المسارات، تعداد «الموقع»، «التحكم في المخبأ».
gRPC ↔ HTTP/JSON عبر مترجمين (grpc-json-transcoder).
ترقيات WebSocket/HTTP2 - تأكد من أن الوكيل يتخطى «الترقية »/« الاتصال».

13) سيناريوهات الاختبار والفوضى

التحميل: رشقات نارية، هضاب طويلة، أجسام «طويلة» (بطيئة البريد).
حقن التأخير/الخسارة في عمليات إعادة → المنبع/المهلة/الفحص الخارجي.
مقاييس الكناري: p95/p99، معدل خطأ الإصدار الجديد مقابل القديم ؛ التراجع التلقائي من قبل SLO.
الظل: مقارنة الردود (أخذ العينات) والمنطق جنبا إلى جنب.

14) أنتيباترن

تتضاعف التراجعات العالمية باستثناء الخصوصية والموعد النهائي → والعواصف.
جلسات لاصقة بدون تحكم في الشظايا الساخنة → انحراف الحمل.
عدم وجود فحوصات صحية/طرد خارجي → حالات «فاسدة» في المسبح.
الرؤوس/الأجسام غير المحدودة → أبسط DoS.
خلط التحولات والأمن بدون نسخة مخطط → تراجعات غير متوقعة.
ذاكرة تخزين مؤقت عالمية واحدة بدون «تنوع» → ردود غير صحيحة.

15) تفاصيل iGaming/Finance

الإقليمية: المسار حسب اختصاص اللاعب/العلامة التجارية ؛ عزل مناطق الدفع.
المسارات الحرجة (الودائع/النواتج): فترات زمنية قصيرة، وتكرار واحد، وحرمة ؛ كل مجموعة على حدة.
PSP/KYC: مجمعات مخصصة للمنبع، وسياسات إعادة/مهلة صارمة، وقاطع الدائرة، ودبابيس جغرافية.
قنوات AB: تجارب آمنة مع المدفوعات/الحدود فقط لمسار القراءة ؛ الكتابة - من خلال الأعلام والنسب المئوية الصغيرة.

16) قائمة التحقق من الاستعداد

  • TLS 1. 2+/1. 3، دبابيس OCSP، HSTS ؛ صحيح «X-Forwarded -».
  • قواعد توجيه واضحة: المضيف/المسار/الرأس/ملف تعريف الارتباط ؛ الوثائق.
  • الفحوصات الصحية، الطرد الخارجي، المهلة لكل تجربة، إعادة التدوير المقيدة.
  • المرجح/الكناري + الظل ؛ التراجع التلقائي من قبل SLO/alert.
  • Cache/compression/ETag ؛ حدود الجسم/الرأس ؛ طلب الاندماج.
  • السجلات/المسارات مع 'التعقب _ id' ؛ RED + المقاييس الخارجية/الصحية ؛ لوحات القيادة لكل مسار/مجموعة.
  • مرشحات WAF/bot/CORS ؛ حماية كبيرة الحجم وبطيئة.
  • التجزئة اللزجة/المتسقة عند الحاجة ؛ التحكم في الشظايا الساخنة.
  • يتم التحقق من التكوينات، والهجرات آمنة، والأسرار في KMS/Vault.

17) TL ؛ د

إنهاء TLS على المحيط والطريق إلى L7 عبر المضيف/المسار/الرأس/ملف تعريف الارتباط. للإطلاقات - الكناري المرجح والظل ؛ للاستقرار - الفحوصات الصحية، الطرد الخارجي، الإعادات المحدودة مع المهلة لكل تجربة. استخدم ذاكرة التخزين المؤقت والضغط والتجزئة المتسقة حيث تتحسن p95. قم بقياس إشارات RED وحالة المجموعة، واحتفظ بحدود WAF والحجم. بالنسبة لطرق الدفع الحرجة - مجموعات منفصلة، واتفاقات قصيرة للأمن الغذائي، وإدارة صارمة للعودة/الخصوصية.

Contact

اتصل بنا

تواصل معنا لأي أسئلة أو دعم.نحن دائمًا جاهزون لمساعدتكم!

بدء التكامل

البريد الإلكتروني — إلزامي. تيليغرام أو واتساب — اختياري.

اسمك اختياري
البريد الإلكتروني اختياري
الموضوع اختياري
الرسالة اختياري
Telegram اختياري
@
إذا ذكرت تيليغرام — سنرد عليك هناك أيضًا بالإضافة إلى البريد الإلكتروني.
WhatsApp اختياري
الصيغة: رمز الدولة + الرقم (مثال: +971XXXXXXXXX).

بالنقر على الزر، فإنك توافق على معالجة بياناتك.