GH GambleHub

प्रॉक्सी परतें और रिवर्स रूटिंग

संक्षिप्त सारांश

प्रॉक्सी परत प्लेटफ़ॉर्म की "फ्रंट बस" है: यह टीएलएस को पूरा करती है, ग्राहकों को प्रमाणित करती है, ट्रैफ़िक वितरित करती है, चोटियों को चिकना करती है और रिलीज़ को सुरक्षित बनाती है (कैनरी, नीला-हरा)। न्यूनतम परिपक्वता सेट: प्रॉक्सी भूमिकाओं का स्पष्ट स्तरीकरण, नियतात्मक मार्ग नियम, टाइमआउट/रिट्रे नियंत्रण, कैश + दर-सीमा, एंड-टू-एंड अवलोकन और स्वचालन।

प्रॉक्सी टैक्सोनॉमी

अग्रेषित प्रॉक्सी - बाहर क्लाइंट/सेवाओं का आउटबाउंड ट्रैफिक (एग्रेस), फिल्टर/मिररिंग, डीएलपी।

रिवर्स प्रॉक्सी - बैकेंड (हमारा मुख्य फोकस) के लिए बाहरी अनुरोधों और मार्गों को स्वीकार करता है।

उत्पादन पथ में परतें:

1. एज/सीडीएन/डब्ल्यूएएफ (एनीकास्ट, बॉट फिल्टर, कैश)

2. L7 इंग्रेस/एपीआई-गेटवे (रूटिंग, प्रमाणीकरण, नीतियां)

3. पूर्व-पश्चिम, एमटीएलएस और रेट्रास के लिए सेवा परत/मेश (साइडकार)

4. आउटबाउंड एकीकरण के लिए एग्रेस-गेटवे (पीएसपी, भागीदार)

रूटिंग (L4/L7) और एल्गोरिदम

L4 (TCP/UDP, पासथ्रू TLS): HTTP को समझे बिना न्यूनतम देरी।

L7 (HTTP/1। 1, HTTP/2, HTTP/3/gRPC): होस्ट/पाथ/हेडर/कुकी नियम, परिवर्तन, WAF, कैश।

एल्गोरिदम:
  • राउंड-रॉबिन/लिस्ट-कनेक्शन/EWMA - सामान्य मामले।
  • सुसंगत-हैश (कुकी/पहचानकर्ता द्वारा) - चिपचिपा सत्र और कैश इलाके।
  • Header-/Geo-/Latency-आधारित - क्षेत्र/प्रदाता द्वारा लक्षित, तेज PoP।
  • कैनरी/भारित - चरणबद्ध रोलआउट (5→25→50→100%)।
  • छाया/मिररिंग - प्रतिक्रियाओं को प्रभावित किए बिना एक नई सेवा के लिए यातायात की एक प्रति।

क्वेरी/प्रतिक्रिया परिवर्तन

URL पुनर्लेखन/पुनर्निर्देशन: पथ एकीकृत करें, वर्शनिंग ('/v1/ →/svc/v1/')।

हेडर: 'X-Forwarded-For/Proto/Host' को सामान्य करें, 'traceparent '/' x-request-id' जोड़ें, अनावश्यक फ़िल्टर करें।

CORS/CSRF: प्रवेश द्वार में केंद्रीकृत करें, हर सेवा में सेटिंग का उत्पादन न करें।

संपीड़न/अपघटन: Brotli/gzip, प्रकार से नियंत्रण।

शरीर की सीमा और सुरक्षा धीमी गति से/ओवरसाइज़हेडर के खिलाफ।

सत्यापन और सुरक्षा

टीएलएस 1। 3 + OCSP स्टेपलिंग + बाहरी मोर्चों पर HSTS।

mTLS: प्रशासन, परिचालन API, साझेदार चैनल।

OAuth2/OIDC: गेटवे (टोकन आत्मनिरीक्षण/JWT-सत्यापित) के माध्यम से प्राधिकरण → अपस्ट्रीम में दावों के लिए अग्रेषित।

क्रॉस-सर्विस और पार्टनर एकीकरण के लिए एपीआई कुंजी/हस्ताक्षर (एचएमएसी)।

WAF/बॉट फिल्टर: हस्ताक्षर + व्यवहार नियम, ग्रीपास/कैप्चा।

सीएसपी/एक्स-फ्रेम-विकल्प/रेफरर-नीति - किनारे पर सुरक्षा शीर्षक।

विश्वसनीयता: रेट्रास/टाइमआउट/टीटी

टाइमआउट: L4/L7, सिंगल पॉलिसी पर कनेक्ट/रीड/राइट (उदाहरण के लिए, 'कनेक्ट 500ms', 'एपीआई के लिए 3-5s' पढ़ें)।

रिट्रेज़: केवल पहचान ('GET/HEAD'), समय/मात्रा सीमा, 'पुनरावृत्ति-बजट'।

सर्किट-ब्रेकर: एक साथ अनुरोधों/त्रुटियों, तेजी से विफलता और गिरावट पर प्रतिबंध।

बाहरी पता लगाना - पूल से बुरे उदाहरणों को बाहर करता है।

बैकऑफ + जिटर: ताकि "झुंड प्रभाव" न बनाया जा सके।

कैश और ट्रैफिक प्रबंधन

कैश L7: स्थिर/अर्ध-गतिशील (कैटलॉग, कॉन्फ़िग्स), 'एस-मैक्सेज' + 'बासी-जबकि-पुनर्नवीनीकरण'।

दर-सीमा/कोटा: आईपी/एएसएन/डिवाइस/कुकी द्वारा, वितरित काउंटर (रेडिस/रेट-सेवा)।

स्टिकी सत्र: कुकी/सुसंगत-हैश; विफल और "फिर से चिपकाने" पर विचार करें।

अनुरोध ढहने (dedupe): समान GETs के "तूफान" से मूल की रक्षा करना।

प्रोटोकॉल और सुविधाएँ

HTTP/2: मल्टीप्लेक्सिंग, प्राथमिकताएं; 'ALPN: h2' पकड़ो।

HTTP/3/QUIC: नुकसान/जीटर प्रतिरोध; UDP/443 खोलें, MTU/PMTUD की निगरानी करें।

gRPC: स्वास्थ्य-जांच, स्ट्रीमिंग, समय सीमा; प्रॉक्सी को 'grpc-station' का समर्थन करना चाहिए।

WebSocket/SSE: लंबे समय तक रहने वाले कनेक्शन, सक्षम निष्क्रिय समय और सीमा।

अवलोकन और एसएलओ

मेट्रिक्स:
  • L4/L7: 'p50/p95/p99', ошибки ('4xx/5xx/Grpc-codes'), 'open _ conns', 'CPS/RPS', 'retry _ rate'।
  • TLS: संस्करण/सिफर्स, p95 हैंडशेक, फिर से शुरू।
  • रूटिंग: रूट/क्लस्टर, आउटलेयर-इजेक्शन द्वारा शेयर।
  • दर-सीमा/WAF: ट्रिगर/FP-दर।
  • लॉग: एक्सेस (पीआईआई के बिना), रूटिंग कारण, ट्रेस हेडर।
  • निशान: 'traceparent '/B3, नमूना।
एसएलओ (उदाहरण):
  • p95 TTFB API ≤ 250-300 ms; त्रुटि L7 ≤ 0। 5%.
  • कैनरी की सफलता (मेट्रिक्स के क्षरण के बिना) ≥ 99% लॉन्च।
  • एफपी-दर 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-सत्यापित + mTLS को बैकएंड + रेट-लिमिट)

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

ट्रेफिक (नियम-आधारित मार्ग, अवधारणा)

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, पिन CPU/IRQ, पर्याप्त सॉकेट बफ़र्स।

TLS: ECDSA + शॉर्ट चेन, फिर से शुरू ≥ 70%, HTTP/2/3 सक्षम।

"हॉट" प्रतिक्रियाओं (304-सत्यापन सहित) के लिए प्रॉक्सी में कैश।

वार्म-अप: चोटियों से पहले DNS/TLS/कनेक्शन को गर्म करना।

डीआर और दोष सहिष्णुता

अपमानित नोड्स ('बाहरी-इजेक्शन') का ऑटो-हटाना।

स्वास्थ्य-जांच L4/L7 (HTTP बॉडी-वर्जन टोकन)।

फेल-ओपन/फेल-बंद - भुगतान/महत्वपूर्ण रास्तों के लिए सचेत रूप से चुनें।

ट्रैफिक को नई सेवा में बदलने से पहले छाया मोड।

रनबुक: "क्लस्टर पतन", "रीडायरेक्ट लूप", "कनेक्शन लीक", "रिट्रे स्टॉर्म"।

कार्यान्वयन जाँच सूची

  • स्तरीकरण: एज → इंग्रेस/एपीआई-जीडब्ल्यू → मेश/एग्रेस, भूमिकाएं और जिम्मेदारियां।
  • रूटिंग नीतियां: मेजबान/पथ/हेडर/वजन, कैनरी/नीला-हरा, छाया।
  • सुरक्षा: टीएलएस 1। 3, संवेदनशील रास्तों के लिए mTLS, JWT/OAuth2, WAF।
  • टाइमआउट/रिट्रेज ़/सीबी: समान मान, पहचान, पुन: बजट।
  • कैश/दर-सीमा/अनुरोध-पतन जहां उपयुक्त हो।
  • अवलोकन: मेट्रिक्स/लॉग/ट्रेल्स, सहसंबंध पहचानकर्ता।
  • एसएलओ: p95/त्रुटियां/संसाधन; परिधि विफलताओं के लिए अलर्ट।
  • IaC/GitOps: रिपॉजिटरी प्रॉक्सी कॉन्फ़िग, कैनरी रिलीज़, फास्ट रोलबैक।
  • परीक्षण: e2e मार्ग, अराजकता स्क्रिप्ट, घटनाओं से पहले लोड।

सामान्य त्रुटियाँ

भूमिका पृथक्करण के बिना एक "जादू" प्रॉक्सी हार्वेस्टर - जटिल आरसीए और उच्च विस्फोट त्रिज्या।

गैर-आइडेम्पोटेंट प्रश्नों के लिए रिट्रेज़ - डुप्लिकेट लेनदेन।

कोई हेडर/यूआरएल सामान्यीकरण → कैश-विषाक्तता और खराब कुंजी नहीं।

विफल योजनाओं के बिना चिपचिपा सत्र - एक अपमानित उदाहरण पर चिपके हुए।

गुम 'traceparent '/' x-request- id' समस्याओं को सहसंबंधित नहीं कर सकता.

प्रॉक्सी स्तर पर हार्ड 301/302 - लूप और एपीआई संस्करण नियंत्रण का नुकसान।

iGaming/fintech विशिष्ट

भुगतान/PSP: एमटीएलएस के साथ समर्पित एग्रेस-गेटवे, सख्त टाइमआउट, आइडेम्पोटेंट कुंजी, आईपी/एएसएन व्हाइटलिस्ट।

चोटियों (मैच/टूर्नामेंट): कैनरी/भारित, बॉट्स के लिए ग्रे मार्ग, आक्रामक GET कैश, "तूफान" के खिलाफ मूल रक्षा।

विनियमन/लॉगिंग: ऑडिट लॉग में नीति संस्करण और मार्ग कारण तय करना; PII को कम करें।

सामग्री प्रदाता: कैश इलाके और यहां तक कि वितरण के लिए प्रदाता कुंजी द्वारा सुसंगत-हैश।

मिनी प्लेबुक

1) कैनरी एपीआई रिलीज़

1. 'एपी-कैनरी' पर 5% वजन शामिल करें; 2) p95/त्रुटि निगरानी; 3) शेयर का विस्तार करें; 4) गिरावट के दौरान ऑटो-रोलबैक।

2) अपमानित नोड का आपातकालीन हटाना

1. बाहरी-अस्वीकृति या मैनुअल 'नाली'; 2) पूल की जाँच और कैश की हिट; 3) घटना के बाद आरसीए।

3) फंक्शन मिररिंग

1. प्रतिक्रियाओं को प्रभावित किए बिना छाया सक्षम करें; 2) मेट्रिक्स/रिस्पांस डिफ की तुलना करें; 3) स्विच करने का फैसला।

4) रिट्रे तूफान

1. रीट्री-बजट/समय सीमा कम करें; 2) अनुरोध-पतन सक्षम करना; 3) स्थानीय स्टब्स/कैश; 4) मूल को स्थिर करें।

परिणाम

एक अच्छी तरह से डिज़ाइन की गई प्रॉक्सी परत भूमिका पृथक्करण, नियतात्मक मार्ग, विश्वसनीय नीतियां (टाइमआउट/रिट्रे/सीबी), सुरक्षा (एमटीएलएस/जेडब्ल्यूटी/डब्ल्यूएएफ) और अवलोकन है। IaC के लिए पिन कॉन्फ़िगरेशन, कैनरी और छाया का उपयोग करें, SLO को मापते हैं - और आपका प्लेटफ़ॉर्म सबसे गर्म शिखर घंटों के दौरान भी स्केलेबल, अनुमानित और सुरक्षित होगा।

Contact

हमसे संपर्क करें

किसी भी प्रश्न या सहायता के लिए हमसे संपर्क करें।हम हमेशा मदद के लिए तैयार हैं!

इंटीग्रेशन शुरू करें

Email — अनिवार्य है। Telegram या WhatsApp — वैकल्पिक हैं।

आपका नाम वैकल्पिक
Email वैकल्पिक
विषय वैकल्पिक
संदेश वैकल्पिक
Telegram वैकल्पिक
@
अगर आप Telegram डालते हैं — तो हम Email के साथ-साथ वहीं भी जवाब देंगे।
WhatsApp वैकल्पिक
फॉर्मैट: देश कोड और नंबर (उदा. +91XXXXXXXXXX)।

बटन दबाकर आप अपने डेटा की प्रोसेसिंग के लिए सहमति देते हैं।