GH GambleHub

שכבות פרוקסי וניתוב הפוך

תקציר

שכבת הפרוקסי היא ”האוטובוס הקדמי” של הפלטפורמה: היא משלימה את TLS, מאשרת לקוחות, מפיצה תנועה, מייבשת פסגות והופכת את השחרור לבטוח (קנריות, כחול-ירוק). הגדרת בגרות מינימלית: סטרטיפיקציה ברורה של תפקידי פרוקסי, כללי ניתוב דטרמיניסטיים, בקרת זמן/מגש מחדש, מגבלת קצב מטמון +, תצפית מקצה לקצה ואוטומציה.

טקסונומיה פרוקסי

פרוקסי קדמי - תנועה חיצונית של לקוחות/שירותים מחוץ (egress), מסננים/שיקופים, DLP.
פרוקסי הפוך - מקבל בקשות חיצוניות ומסלולים לגבות (המוקד העיקרי שלנו).

שכבות בנתיב הייצור:

1. קצה/CDN/WAF (בכל מקום, מסנני בוט, מטמון)

2. L7 Ingress/API-Gateway (ניתוב, אימות, מדיניות)

3. שכבת שירות (Service Layer/Mesh) עבור מזרח-מערב, MTLS ו ־ Retras

4. שער יציאה לאינטגרציות חיצוניות (PSP, שותפים)

ניתוב (L4/L7) ואלגוריתמים

L4 (TCP/UDP, passetrough TLS): עיכוב מינימלי, ללא הבנה של HTTP.
L7 (HTTP/1. 1, HTTP/2, HTTP/3/gRPC): מארח/שביל/כותרת/חוקי עוגיות, טרנספורמציה, WAF, מטמון.

אלגוריתמים:
  • עגולים-רובין/הכי פחות-קשרים/EWMA - מקרים נפוצים.
  • חשיש עקבי (על ידי עוגייה/זיהוי) - הפעלות דביקות ומקומות מטמון.
  • ראש -/Geo-/Latency מבוסס מיקוד על ידי אזור/ספק, POPs מהיר.
  • Canary/Weavited - rollout passed (5 = 25 = 50 = 100%).
  • Shadow/Mirroring - עותק של תנועה לשירות חדש מבלי להשפיע על תגובות.

שאילתה/טרנספורמציה

URL לשכתב/להפנות: לאחד מסלולים, versioning ('/v1/#/svc/v1/').
כותרות: נרמול 'X-Forwared-For/Proto/Host', הוסף 'tracepart'/' X-Request-id', מסנן לא נחוץ.
COURS/CSRF: התרכז בשער, אל תייצר הגדרות בכל שירות.
דחיסה/הפחתת לחץ: ברוטלי/gzip, בקרה אחר סוג.
גבולות גוף והגנה מפני כותרות איטיות/גדולות מדי.

אימות וביטחון

TLS 1. 3 + הידוק OCSP + HSTS בחזיתות חיצוניות.
MTLS: מנהל, API תפעולי, ערוצים שותפים.
OAuth2/OIDC: אישור באמצעות שער (token introspection/JWT-vrice).
API Keys/Signatures (בראשי תיבות: HMAC) עבור שילוב צולב ושיתוף פעולה.
מסנני WAF/bot: חתימות + כללי התנהגות, greypass/captcha.
CSP/X-Frame-Options/Referror-Policy - ראשי אבטחה בקצה.

אמינות: Retras/Timeout/TT

פסקי זמן: חיבור/קריאה/כתיבה על L4/L7, מדיניות יחידה (לדוגמה, "לחבר 500 מ" מ "," לקרוא 3-5 "עבור API).
מגשים מחדש: רק אידמפוטנטים (”GET/HEAD”), מגבלת זמן/כמות, ”retry-butter”.
מפסק מעגל: הגבלות על בקשות/שגיאות בו זמנית, כשל מהיר והשפלה.
גילוי חריג יותר - לא כולל מקרים רעים מהבריכה.
Backoff + jiter: כדי לא ליצור ”אפקט עדר”.

מטמון וניהול תנועה

מטמון L7: סטטי/חצי דינמי (קטלוגים, תצורות), 's-maxage' + 'stale-when-aven-revalidate'.
מגבלת קצב/מכסה: על ידי IP/ASN/התקן/עוגייה, דלפק מבוזר (Redis/Rate-service).
פגישות דביקות: עוגייה/עקבית-חשיש; שקול כשל ו ”הדבקה מחדש”.
בקשה לקריסה (dedupe): הגנה על מקור מ ”סערה” של גטים זהים.

פרוטוקולים ותכונות

HTTP/2: ריבוי, סדר עדיפויות; להחזיק 'ALPN: H2'.
HTTP/3/QUIC: התנגדות אובדן/עצבנות; לפתוח את UDP/443, לפקח על MTU/PMTUD.
GRPC: בדיקות בריאות, הזרמה, מועדים; פרוקסי חייב לתמוך 'grpc-status'.
שקע רשת/SSE: קשרים ארוכי ימים, זמני סרק כשירים ומגבלות.

תצפית ו SLO

מדדים:
  • L4/L7: 'p50/p95/p99', '4xx/5xx/Grpc-codes'), 'open _ cons',' CPS/RPS ',' retry _ rate '.
  • TLS: גרסה/צפנים, לחיצת יד p95, חידוש.
  • ניתוב: מניות לפי מסלול/אשכול, פליטות חוץ.
  • מגבלת קצב/WAF: מפעיל/FP-rate.
  • יומנים: גישה (ללא PII), ניתוב סיבות, עקבות כותרות.
  • עקבות: ”עקבות ”/B3, דגימה.
SLO (דוגמאות):
  • P95 TFB API 250-300 ms; שגיאה 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-vrice + mTLS כדי backend + 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

שליח (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"

ביצועי פרוקסי

איגום חיבור ושמירה על גיבוי, הגבלת חיבור לכל מקרה.
שימוש חוזר, סיכה מעבד/IRQ, מספיק מזגנים שקעים.
שרשראות קצרות ECDSA +, חידוש של 70%, HTTP/2/3 הופעלו.
מטמון בפרוקסי לתגובות ”חמות” (כולל 304-אימות).
חימום: חימום DNS/TLS/חיבורים לפני פסגות.

DR וסובלנות אשמה

הסרה אוטומטית של צמתים מושפלים (”outlier-ejection”).
בדיקות בריאות L4/L7 (HTTP גוף-גרסה אסימון).
כשל פתוח/כשל סגור - לבחור במודע לתשלום/שבילים קריטיים.
מצב צל לפני מעבר תנועה לשירות חדש.
ספרי ריצה: ”התמוטטות אשכול”, ”לולאת כיוון”, ”דליפות חיבור”, ”סופת מגש מחדש”.

רשימת יישומים

Stratification: Edge # Ingress/API-GW # Mesh/Egress, תפקידים ואחריות.

[ מדיניות ניתוב ]: מארח/שביל/כותרת/משקל, קנרית/כחול-ירוק, צל.
[ ] אבטחה: TLS 1. 3, MTLS למסלולים רגישים, JWT/OAuth2, WAF.
[ ] Timeouts/Reprays/CB: ערכים אחידים, אידמפוטנטיות, מחדש-תקציב.
[ ] מטמון/מגבלת קצב/קריסת בקשה במקום המתאים.
[ ] תצפית: מדדים/רישומים/שבילים, זיהוי מתאם.
[ ] SLO: p95/שגיאות/משאבים; התראות לכשלונות היקפיים.
[ ] IAC/GitOps: תצורות פרוקסי מאגר, משחררים כנרית, rollback מהיר.
[ ] בדיקות: מסלולים e2e, תסריטי כאוס, עומס לפני אירועים.

שגיאות נפוצות

קוצר פרוקסי ”קסם” ללא הפרדת תפקידים * RCA מורכב ורדיוס פיצוץ גבוה.
מגשים מחדש לשאילתות לא אידמפוטנטיות * שכפול עסקאות.
אין הרעלת ראש/כתובת נורמליזציה = הרעלת מטמון ומפתחות גרועים.
מפגשים דביקים ללא תוכניות כשל פי דבק על מקרה משפיל.
חסר 'tracepart'/' x-בקשה-id' = = לא יכול להתאים בעיות.
קשה 301/302 ברמת פרוקסי = לולאות ואובדן בקרת גרסת API.

iGaming/fintech ספציפי

תשלומים/PSP: יציאה ייעודית עם mTLS, פסקי זמן מחמירים, מפתחות אידמפוטנטים, IP/ASN לבנים.
פסגות (גפרורים/טורנירים): כנרית/משוקללת, מסלולים אפורים לבוטים, מטמון GET אגרסיבי, הגנה על המקור מפני ”הסערה”.
רגולציה/רישום: תיקון גרסאות מדיניות וסיבות מסלול ביומני ביקורת; למזער מח "ש.
ספקי תוכן: עקבי-חשיש על ידי מפתח ספק למקומות מטמון ואפילו הפצה.

ספרי משחקים מיני

1) שחרור API קנרי

1. כולל 5% משקל על ”אפי-קנרית”; 2) ניטור p95/שגיאות; 3) להרחיב את החלק; 4) גלגול אוטומטי בזמן ההשפלה.

2) הסרת חירום של הצומת המושפל

1. חריץ-פליטה או ידני ”ניקוז”; 2) בדיקת הבריכה ופגיעת המטמון; 3) לאחר תקרית RCA.

3) שיקוף פונקציות

1. אפשר צל ללא השפעה על תגובות; 2) השווה בין מדדים/תגובת diff; 3) להחליט על החלפה.

4) סופת מגש

1. הפחת את מגבלות התקציב/זמן; 2) לאפשר קריסת בקשה; 3) גורים מקומיים/מטמון; 4) לייצב את המוצא.

תוצאות

שכבת פרוקסי מעוצבת היטב היא הפרדת תפקידים, ניתוב דטרמיניסטי, מדיניות אמינה (פסקי זמן/מגשים/CB), אבטחה (mTLS/JWT/WAF) ויכולת תצפית. תצורות סיכה ל-IC, השתמש בקנריות וצל, מדד SLO - והפלטפורמה שלך תהיה ניתנת לאיזון, צפויה ומאובטחת אפילו בשעות השיא החמות ביותר.

Contact

צרו קשר

פנו אלינו בכל שאלה או צורך בתמיכה.אנחנו תמיד כאן כדי לעזור.

התחלת אינטגרציה

Email הוא חובה. Telegram או WhatsApp — אופציונליים.

השם שלכם לא חובה
Email לא חובה
נושא לא חובה
הודעה לא חובה
Telegram לא חובה
@
אם תציינו Telegram — נענה גם שם, בנוסף ל-Email.
WhatsApp לא חובה
פורמט: קידומת מדינה ומספר (לדוגמה, +972XXXXXXXXX).

בלחיצה על הכפתור אתם מסכימים לעיבוד הנתונים שלכם.