GH GambleHub

الطبقات بالوكالة والتوجيه العكسي

موجز موجز

الطبقة بالوكالة هي «الحافلة الأمامية» للمنصة: فهي تكمل TLS، وتصدق على العملاء، وتوزع حركة المرور، وتنعم القمم وتجعل الإصدار آمنًا (جزر الكناري، الأزرق الأخضر). مجموعة الحد الأدنى للنضج: التقسيم الطبقي الواضح لأدوار الوكيل، وقواعد التوجيه الحتمية، والتحكم في المهلة/إعادة الدفع، والحد الأقصى للمعدل +، والمراقبة من طرف إلى طرف، والأتمتة.

التصنيف بالوكالة

الوكيل الأمامي - حركة المرور الخارجية للعملاء/الخدمات خارج (الخروج)، المرشحات/المرآة، DLP.
الوكيل العكسي - يقبل الطلبات والطرق الخارجية إلى الخلف (تركيزنا الرئيسي).

طبقات في مسار الإنتاج:

1. Edge/CDN/WAF (Anycast، مرشحات الروبوت، ذاكرة التخزين المؤقت)

2. L7 Ingress/API-gateway (التوجيه والمصادقة والسياسات)

3. طبقة خدمة/شبكة (سيارة جانبية) للشرق والغرب و mTLS و Retras

4. بوابة الخروج للتكامل الخارجي (PSP، الشركاء)

التوجيه (L4/L7) والخوارزميات

L4 (TCP/UDP، passthrough TLS): الحد الأدنى من التأخير، دون فهم HTTP.
L7 (HTTP/1. 1، HTTP/2، HTTP/3/gRPC): قواعد المضيف/المسار/الرأس/ملفات تعريف الارتباط، التحول، WAF، ذاكرة التخزين المؤقت.

الخوارزميات:
  • Round-robin/Lest-connections/EWMA - الحالات الشائعة.
  • التجزئة المتسقة (حسب ملف تعريف الارتباط/المعرف) - جلسات لزجة ومحطة ذاكرة التخزين المؤقت.
  • Header/Geo-/Latency-based - targeting by region/provider, fast poPs.
  • الكناري/المرجح - الطرح التدريجي (5→25→50→100٪).
  • Shadow/Mirroring - نسخة من حركة المرور إلى خدمة جديدة دون التأثير على الردود.

الاستعلام/تحويل الاستجابة

إعادة كتابة/إعادة توجيه عنوان URL: توحيد المسارات، إصدار ('/v1/ →/svc/v1/').
الرؤوس: تطبيع "X-Forwerded-For/Proto/Host'، إضافة" traceparent "/" x-request-id "، المرشح غير ضروري.
CORS/CSRF: مركزية في البوابة، لا تنتج إعدادات في كل خدمة.
الضغط/تخفيف الضغط: Brotli/gzip، التحكم حسب النوع.
حدود الجسم والحماية من الرؤوس البطيئة/الكبيرة الحجم.

التوثيق والأمن

TLS 1. 3 + تدبيس OCSP + HSTS على الجبهات الخارجية.
mTLS: الإداريون، واجهات برمجة التطبيقات التشغيلية، والقنوات الشريكة.
OAuth2/OIDC: الترخيص عبر البوابة (الاستبطان الرمزي/التحقق من JWT) → إرساله إلى المطالبات في المنبع.
مفاتيح/توقيعات API (HMAC) للتكامل بين الخدمات والشركاء.
مرشحات WAF/bot: التوقيعات + القواعد السلوكية، greypass/captcha.
CSP/X-Frame-Options/Referrer-Policy - security headers at the edge.

الموثوقية: Retras/Timeouts/TT

المهلة: الاتصال/القراءة/الكتابة على L4/L7، سياسة واحدة (على سبيل المثال، «توصيل 500 مللي ثانية»، «اقرأ 3-5 ثوانٍ» لواجهة برمجة التطبيقات).
Retrays: idemputent فقط ("GET/HEAD')، حد الوقت/الكمية،" retry-budget ".
قاطع الدائرة: القيود المفروضة على الطلبات/الأخطاء المتزامنة، والفشل السريع والتدهور.
الكشف الخارجي - يستثني الحالات السيئة من المسبح.
Backoff + jitter: حتى لا تخلق «تأثير القطيع».

إدارة المخابئ والمرور

Cache L7: static/شبه dynamic (كتالوجات، تكوينات)، 'maxage' + 'fale-whine-revalidate'.
حد المعدل/الحصة: بواسطة IP/ASN/device/cookie، عداد موزع (Redis/Rate-service).
الجلسات اللاصقة: ملف تعريف الارتباط/التجزئة المتسقة ؛ النظر في الفشل و «إعادة اللصق».
الطلب ينهار (dedupe): حماية المنشأ من «عاصفة» من GETs المتطابقة.

البروتوكولات والميزات

HTTP/2: تعدد الإرسال والأولويات ؛ عقد 'ALPN: h2'.
HTTP/3/QUIC: مقاومة الخسارة/التنفس ؛ فتح UDP/443، ومراقبة MTU/PMTUD.
gRPC: الفحوصات الصحية، البث، المواعيد النهائية ؛ يجب على الوكلاء دعم «حالة grpc».
WebSocket/SSE: اتصالات طويلة الأمد، ومواعيد خمول مؤهلة وحدود.

قابلية الملاحظة و SLO

المقاييس:
  • L4/L7: 'p50/p95/p99'، ошибки ('4xx/5xx/Grpc-codes')، 'open _ conns'،' CPS/RPS '،' retry _ rate '.
  • TLS: نسخة/شفرات، مصافحة p95، استئناف.
  • التوجيه: الأسهم حسب المسار/المجموعة، والقذف الخارجي.
  • حد المعدل/WAF: المشغلات/معدل FP.
  • الجذوع: الوصول (بدون PII)، أسباب التوجيه، رؤوس التتبع.
  • الآثار: "traceparent'/B3، أخذ العينات.
SLO (أمثلة):
  • p95 TTFB API ≤ 250-300 mm ؛ خطأ L7 ≤ 0. 5%.
  • نجاح جزر الكناري (دون تدهور المقاييس) ≥ 99٪ من عمليات الإطلاق.
  • معدل FP WAF ≤ 0. 1%.

التكوينات النموذجية

Nginx (الوكيل العكسي، 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 إلى backend + الحد الأقصى للمعدل)

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

مبعوث (JWT + الطرق المرجحة + الكشف الخارجي)

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 (الطرق القائمة على القواعد، المفهوم)

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"

أداء بالوكالة

تجميع الاتصال والحفاظ على الخلف، حد الاتصال لكل حالة.
Reuseport، pin CPU/IRQ، مآخذ مقبس كافية.
TLS: ECDSA + سلاسل قصيرة، استئناف ≥ 70٪، HTTP/2/3 تمكين.
مخبأ بالوكالة للردود «الساخنة» (بما في ذلك التحقق من صحة 304).
الإحماء: تسخين DNS/TLS/الاتصالات قبل الذروة.

DR وتحمل الخطأ

الإزالة التلقائية للعقد المتدهورة («الطرد الخارجي»).
L4/L7 الفحوصات الصحية (رمز إصدار الجسم HTTP).
فشل مفتوح/فشل مغلق - اختر بوعي مسارات الدفع/الحرجة.
وضع الظل قبل تحويل حركة المرور إلى خدمة جديدة.
كتب التشغيل: «انهيار العنقود»، «حلقة إعادة التوجيه»، «تسريبات الاتصال»، «عاصفة العودة».

قائمة التنفيذ المرجعية

  • التقسيم الطبقي: Edge → Ingress/API-GW → Mesh/Egress، الأدوار والمسؤوليات.
  • سياسات التوجيه: المضيف/المسار/الرأس/الوزن، الكناري/الأزرق الأخضر، الظل.
  • الأمن: TLS 1. 3، mTLS للمسارات الحساسة، JWT/OAuth2، WAF.
  • Timeouts/Retrays/CB: قيم موحدة، idempotency، retry-budget.
  • المخبأ/حد المعدل/انهيار الطلب عند الاقتضاء.
  • إمكانية الرصد: مقاييس/سجلات/مسارات، معرفات الارتباط.
  • SLO: p95/خطأ/موارد ؛ تنبيهات إلى فشل المحيط.
  • IaC/GitOps: تكوينات وكيل المستودع، إطلاقات الكناري، التراجع السريع.
  • الاختبارات: طرق e2e، نصوص الفوضى، التحميل قبل الأحداث.

أخطاء شائعة

حاصدة بالوكالة «السحرية» بدون فصل الدور → RCA المعقدة ونصف قطر الانفجار العالي.
إعادة طباعة الاستفسارات غير الخاطئة → تكرار المعاملات.
لا يوجد تطبيع للرأس/عنوان URL → تسمم بالمخبأ ومفاتيح سيئة.
الجلسات اللاصقة دون خطط فاشلة → التمسك بحالة متدهورة.
لا يمكن أن يربط «traceparent »/« x-request-id» المفقود → بين المشكلات.
صعب 301/302 على مستوى الوكيل → حلقات وفقدان التحكم في إصدار واجهة برمجة التطبيقات.

iGaming/fintech specific

المدفوعات/PSP: بوابة خروج مخصصة مع mTLS، ومواعيد زمنية صارمة، ومفاتيح خفية، وقوائم IP/ASN البيضاء.
القمم (المباريات/البطولات): طرق كناري/مرجحة، رمادية للروبوتات، مخبأ GET العدواني، دفاع الأصل ضد «العاصفة».
التنظيم/التسجيل: تثبيت نسخ السياسات وأسباب المسار في سجلات مراجعة الحسابات ؛ تقليل PII.
مزودو المحتوى: التجزئة المتسقة حسب مفتاح المزود لمحلية التخزين المؤقت وحتى التوزيع.

كتب اللعب الصغيرة

1) إصدار Canary API

1. تضمين وزن 5٪ على «api-canary» ؛ 2) p95/رصد الأخطاء ؛ 3) توسيع الحصة ؛ 4) التراجع التلقائي أثناء التحلل.

2) إزالة العقدة المتدهورة في حالات الطوارئ

1. '1' الطرد من الخارج أو «التصريف» اليدوي ؛ 2) فحص المسبح وضرب المخبأ ؛ 3) RCA بعد الحادث.

3) انعكاس الوظيفة

1. تمكين الظل دون التأثير على الاستجابات ؛ 2) مقارنة المقاييس/الاستجابة ؛ 3) تقرر التبديل.

4) عاصفة العودة

1. تخفيض الحدود الزمنية للميزانية/إعادة التجربة ؛ 2) التمكين من انهيار الطلبات ؛ 3) الأذرع/المخبأ المحلي ؛ 4) تثبيت الأصل.

النتيجة

طبقة الوكيل المصممة جيدًا هي فصل الأدوار، والتوجيه الحتمي، والسياسات الموثوقة (المهلات/إعادة التصوير/CB)، والأمن (mTLS/JWT/WAF)، وقابلية الملاحظة. تكوينات الدبوس إلى IaC، واستخدم طيور الكناري والظل، وقياس SLO - وستكون منصتك قابلة للتطوير ويمكن التنبؤ بها وآمنة حتى خلال ساعات الذروة الأكثر سخونة.

Contact

اتصل بنا

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

بدء التكامل

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

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

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