Στρώματα διαμεσολαβητή και αντίστροφη δρομολόγηση
Σύντομη Περίληψη
Το πληρεξούσιο στρώμα είναι το «μπροστινό λεωφορείο» της πλατφόρμας: ολοκληρώνει το TLS, πιστοποιεί τους πελάτες, διανέμει την κίνηση, εξομαλύνει τις κορυφές και καθιστά την απελευθέρωση ασφαλή (καναρίνια, μπλε-πράσινο). Καθορισμός ελάχιστης ληκτότητας: σαφής διαστρωμάτωση των πληρεξουσίων ρόλων, καθορισμένοι κανόνες δρομολόγησης, έλεγχος χρονοδιαγράμματος/επανασυσκευής, όριο κρύπτης + επιτοκίου, δυνατότητα παρατήρησης από τέλος σε τέλος και αυτοματοποίηση.
Ταξινόμηση πληρεξουσίου
Προθεσμιακή διαμεσολάβηση - εξερχόμενη κίνηση πελατών/υπηρεσιών εκτός (έξοδος), φίλτρα/αντανάκλαση, DLP.
Αντίστροφη διαμεσολάβηση - αποδέχεται εξωτερικά αιτήματα και διαδρομές υποστήριξης (κύρια εστίασή μας).
1. Ακμή/CDN/WAF (Anycast, φίλτρα bot, κρύπτη)
2. L7 Είσοδος/πύλη API (δρομολόγηση, εξακρίβωση ταυτότητας, πολιτικές)
3. Service Layer/Mesh (sidecar) για ανατολικά-δυτικά, mTLS και Retras
4. Πύλη εξόδου για εξερχόμενες ενότητες (ΠΥΠ, εταίροι)
Δρομολόγηση (L4/L7) και αλγόριθμοι
L4 (TCP/UDP, TLS διέλευσης): ελάχιστη καθυστέρηση, χωρίς κατανόηση HTTP.
L7 (HTTP/1. 1, HTTP/2, HTTP/3/gRPC): κανόνες υποδοχής/διαδρομής/κεφαλίδας/cookie, μετασχηματισμός, WAF, κρύπτη.
- Round-robin/Λιγότερο συνδέσεις/EWMA - κοινές περιπτώσεις.
- Συνεπής-hash (από cookie/αναγνωριστικό) - κολλώδεις συνεδρίες και τοποθεσία κρυφής μνήμης.
- Header-/Geo-/Latency-based - στοχοθέτηση ανά περιφέρεια/πάροχο, ταχεία PoP.
- Κανάριος/Σταθμισμένη - σταδιακή εξάπλωση (5→25→50→100%).
- Shadow/Mirroring - αντίγραφο της κυκλοφορίας σε μια νέα υπηρεσία χωρίς να επηρεάζονται οι απαντήσεις.
Μετασχηματισμός ερωτήσεων/απόκρισης
URL rewrite/redirect: ενοποίηση μονοπατιών, έκδοση ('/v1/ →/svc/v1/').
Κεφαλίδες: ομαλοποίηση 'X-Forwarded-For/Proto/Host', προσθήκη 'traceparent '/' x-request-id', φίλτρο περιττό.
CORS/CSRF: συγκεντρώνονται στην πύλη, δεν παράγουν ρυθμίσεις σε κάθε υπηρεσία.
Συμπίεση/Αποσυμπίεση: Brotli/gzip, έλεγχος ανά τύπο.
Όρια σώματος και προστασία από αργές/υπερμεγέθεις κεφαλές.
Εξακρίβωση ταυτότητας και ασφάλεια
TLS 1. 3 + συρραφή OCSP + HSTS σε εξωτερικά μέτωπα.
mTLS: διοικητικές υπηρεσίες, επιχειρησιακές API, κανάλια εταίρων.
έγκριση μέσω πύλης εισόδου (ενδοσκόπηση/επαλήθευση JWT) διαβίβαση απαιτήσεων στο προηγούμενο στάδιο.
Κλειδιά/Υπογραφές API (HMAC) για την ολοκλήρωση μεταξύ υπηρεσιών και εταίρων.
Φίλτρα WAF/bot: υπογραφές + κανόνες συμπεριφοράς, greypass/captcha.
CSP/X-Frame-options/Referrer-Policy - Κεφαλές ασφαλείας στην άκρη.
Αξιοπιστία: Retras/Timeouts/TT
Timeouts: σύνδεση/ανάγνωση/εγγραφή στο L4/L7, ενιαία πολιτική (για παράδειγμα, «σύνδεση 500 ms», «ανάγνωση 3-5» για API).
Retrays: μόνο idempotent («GET/HEAD»), χρονικό/ποσοτικό όριο, «retrip-budget».
Διακόπτης κυκλώματος: περιορισμοί στις ταυτόχρονες αιτήσεις/σφάλματα, ταχεία αστοχία και υποβάθμιση.
Εξωγενέστερη ανίχνευση - αποκλείει κακές περιπτώσεις από την κοινοπραξία.
Backoff + jitter: για να μην δημιουργηθεί ένα «φαινόμενο κοπαδιού».
Cache και διαχείριση της κυκλοφορίας
Cache L7: στατική/ημι-δυναμική (κατάλογοι, ρυθμίσεις), 's-maxage' + 'stale-while-revalidate'.
Όριο/ποσόστωση: ανά IP/ASN/συσκευή/cookie, κατανεμημένος μετρητής (Redis/Rate-service).
Κολλώδεις συνεδρίες: cookie/συνεπής-hash; να εξετάσει το ενδεχόμενο αποτυχίας και «εκ νέου επικόλλησης».
Αίτημα για κατάρρευση (dedupe): προστασία της προέλευσης από «θύελλα» πανομοιότυπων GET.
Πρωτόκολλα και χαρακτηριστικά
: πολυπλοκότητα, προτεραιότητες· κατέχει 'ALPN: h2'.
: απώλεια/αντίσταση νευρικότητας· ανοίγει το UDP/443, παρακολουθεί το MTU/PMTUD.
gRPC: υγειονομικοί έλεγχοι, ροή, προθεσμίες· οι πληρεξούσιοι πρέπει να υποστηρίζουν το καθεστώς «grpc-status».
WebSocket/SSE: μακροχρόνιες συνδέσεις, ικανά χρονοδιαγράμματα και όρια αδράνειας.
Παρατηρησιμότητα και SLO
Μετρήσεις:- : 'p50/p95/p99', L4/L7 ('4xx/5xx/Grpc-codes'), 'open _ conn ошибки,' CPS/RPS ',' retry _ rate '.
- TLS: έκδοση/κρυπτογραφήματα, p95 χειραψία, επανάληψη.
- Δρομολόγηση: μετοχές ανά διαδρομή/σύμπλεγμα, εξερχόμενες εκτοξεύσεις.
- Όριο επιτοκίου/WAF: ενεργοποιήσεις/συντελεστής FP.
- Αρχεία καταγραφής: πρόσβαση (χωρίς PII), λόγοι δρομολόγησης, κεφαλίδες ιχνοστοιχείων.
- Ίχνη: 'traceparent '/B3, δειγματοληψία.
- p95 TTFB 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 + 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
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 ενεργοποιημένη.
Cache σε πληρεξούσιο για «θερμές» απαντήσεις (συμπεριλαμβανομένης της επικύρωσης 304).
Προθέρμανση: προθέρμανση των συνδέσεων DNS/TLS/πριν από τις κορυφές.
DR και ανοχή βλάβης
Αυτόματη αφαίρεση των αποικοδομημένων κόμβων ('outlier-ejection').
Υγειονομικοί έλεγχοι L4/L7 (HTTP body-version moken).
Αποτυχία-άνοιγμα/αποτυχία-κλείσιμο - επιλέξτε συνειδητά για πληρωμή/κρίσιμες διαδρομές.
Λειτουργία σκιάς πριν από τη μετάβαση της κυκλοφορίας σε νέα υπηρεσία.
Runbooks: "cluster collection", "redirect loop", "connection leak ," retray storm ".
Κατάλογος ελέγχου εφαρμογής
Διαστρωμάτωση: Edge → Ingress/API-GW → Mesh/Egress, ρόλοι και ευθύνες.
- Πολιτικές δρομολόγησης: ξενιστής/διαδρομή/κεφαλίδα/βάρος, καναρίνι/μπλε-πράσινο, σκιά.
- Ασφάλεια: TLS 1. 3, mTLS για ευαίσθητες οδούς, JWT/OAuth2, WAF.
- Timeouts/Retrays/CB: ομοιόμορφες τιμές, ταυτότητα, επαναδοκιμή του προϋπολογισμού.
- Cache/Όριο ταχύτητας/Καταρρέουσα αίτηση, κατά περίπτωση.
- Παρατηρησιμότητα: μετρήσεις/κούτσουρα/μονοπάτια, αναγνωριστικά συσχέτισης.
- SLO: p95/σφάλματα/πόροι· ειδοποιήσεις για αστοχίες περιμέτρου.
- IaC/GitOps: ρυθμίσεις διαμεσολαβητή αποθετηρίου, εκπομπές καναρινιών, γρήγορη ανατροπή.
- Δοκιμές: διαδρομές e2e, σενάρια χάους, φορτίο πριν από γεγονότα.
Κοινά σφάλματα
Ένας «μαγικός» θεριστής πληρεξουσίου χωρίς διαχωρισμό ρόλων → σύνθετη RCA και υψηλή ακτίνα έκρηξης.
Επαναλήψεις για μη ευέλικτες ερωτήσεις → διπλές συναλλαγές.
Δεν υπάρχει ομαλοποίηση κεφαλίδας/URL → δηλητηρίαση από κρύπτη και κακά κλειδιά.
Κολλώδεις συνεδρίες χωρίς αποτυχημένα σχέδια → κολλώντας σε μια υποβαθμισμένη περίπτωση.
Οι ελλείπουσες → «traceparent »/« x-request-id» δεν μπορούν να συσχετίσουν τα προβλήματα.
Σκληρό 301/302 σε επίπεδο διαμεσολαβητή → βρόχους και απώλεια ελέγχου έκδοσης API.
iGaming/fintech special
Πληρωμές/PSP: ειδική έξοδος-πύλη με mTLS, αυστηρά timeouts, idempotent κλειδιά, IP/ASN whitelists.
Κορυφές (αγώνες/τουρνουά): καναρίνι/σταθμισμένο, γκρίζες διαδρομές για ρομπότ, επιθετική μνήμη GET, άμυνα προέλευσης ενάντια στην «καταιγίδα».
Κανονισμός/καταγραφή: καθορισμός των εκδόσεων πολιτικής και των λόγων διαδρομής στα αρχεία καταγραφής ελέγχων· ελαχιστοποίηση της PII.
Πάροχοι περιεχομένου: συνεκτικό πλήκτρο ανά πάροχο για την τοποθεσία της κρυφής μνήμης, ακόμη και για τη διανομή.
Mini playbooks
1) Ελευθέρωση των καναρινιών API
1. Περιλαμβάνονται 5% κατά βάρος σε «καναρίνι». 2) p95/παρακολούθηση σφαλμάτων· 3) να επεκταθεί το μερίδιο, 4) αυτόματη ανατροπή κατά τη διάρκεια της υποβάθμισης.
2) Επείγουσα αφαίρεση του υποβαθμισμένου κόμβου
1. Εξώτερη εξώθηση ή χειροκίνητη «αποστράγγιση», 2) έλεγχος της δεξαμενής και χτύπημα της κρύπτης· 3) μετά το συμβάν RCA.
3) Αντικατοπτρίζοντας τη λειτουργία
1. Ενεργοποίηση της σκιάς χωρίς να επηρεάζονται οι απαντήσεις. 2) σύγκριση μετρήσεων/απόκρισης· 3) αποφασίζει για την αλλαγή.
4) Καταιγίδα ανάσυρσης
1. Μείωση των δημοσιονομικών/χρονικών ορίων επαναδρομολόγησης· 2) να καταστεί δυνατή η κατάρρευση του αιτήματος· 3) τοπικά αποκόμματα/κρύπτες· 4) σταθεροποίηση της προέλευσης.
Αποτέλεσμα
Ένα καλά σχεδιασμένο στρώμα πληρεξουσίου είναι ο διαχωρισμός ρόλων, η καθορισμένη διαδρομή, οι αξιόπιστες πολιτικές (timeouts/retrays/CB), η ασφάλεια (mTLS/JWT/WAF) και η παρατηρησιμότητα. Ρυθμίσεις Pin στο IaC, χρήση καναρινιών και σκιών, μέτρηση SLO - και η πλατφόρμα σας θα είναι κλιμακωτή, προβλέψιμη και ασφαλής ακόμη και κατά τις θερμότερες ώρες αιχμής.