Cos’è un proxy

Cos’è un proxy

Si sente a volte parlare di server proxy nell’ambito di vari tipi di configurazione, soprattutto – nello specifico – relativamente a determinate configurazioni di server e computer connessi in reti WAN e LAN. Questo articolo proverà a chiarire un po’ di concetti in merito, per cercare di rendere tale tecnologia comprensibile a tutti. Diciamo che, anzitutto, la parola proxy può significare “delega, procura, mandatario“, e serve a descrivere semplicemente qualcuno che agisca “per conto di altri”. Nelle nostre connessioni web facciamo molto uso dei proxy, soprattutto per motivi di prestazioni, spesso senza saperlo e non di rado per motivi di sicurezza.

Nell’ambito informatico, quando parliamo di proxy facciamo storicamente riferimento al proxy principle, cioè al principio del proxy come formalizzato da Marc Shapiro nel suo articolo di riferimento Structure and Encapsulation in Distributed Systems: the Proxy Principle. Nell’ambito dei sistemi di rete distribuiti, infatti, il proxy è una struttura unificata, e non ulteriormente scomponibile, demandata a gestire alcuni tipi di richieste da parte del client: se nell’architettura client-server tale richiesta era diretta, in una struttura con proxy c’è un “intermediario” che smista le varie richieste. Questo permette sia di snellire la procedura in termini di velocità, che di definire al meglio le politiche di gestione della sicurezza. Non a caso, inoltre, i proxy vengono utilizzati contestualmente alla configurazione di firewall oppure, caso particolare, per conferire anonimato agli utenti (ad esempio mediante software come TOR).

In pratica, quindi, se X è un computer e Z una risorsa, il proxy Y permette di accedere a Z mediante Y:

X (es. il computer di Ugo) —> Y (es. proxy di youtube.com) —> Z (es. youtube.com)

A livello ancora più pratico, poi, il proxy può ad esempio conservare in memoria i file o le pagine web più popolari, rendendo così più snello e rapido l’accesso alle stesse. Questo tipo di configurazione viene detta comunemente forward proxy (delega in avanti), e si distingue da quella che vedremo a breve per il numero di client coinvolti: in questo schema, infatti, il forward proxy coincide con uno schema molti ad uno.

CLIENT –> Forward proxy –> Internet –> { server }

CLIENT2 –> Forward proxy –> Internet –> { server }

La variante reverse proxy, invece, permette di mappare più di un server dietro le richieste del client, garantendo così massima reperibilità delle risorse, mappatura di URL multipli e molti altri tipi di configurazioni, quali ad esempio la configurazione HTTPS e l’utilizzatissima riscrittura di URL.

Nello schema reverse proxy, abbiamo invece un client che accede ad internet alla ricerca di una risorsa, che viene dinamicamente mappata su più di un server che ne custodisce una copia: questo distribuisce il carico di lavoro in modo ottimale, e può in genere evitare o limitare downtime e disservizi vari (schema uno a molti)

CLIENT –> Internet –> Reverse proxy –> { server1, server2, … }

Un caso tipico di reverse proxy molto utilizzati negli ultimi anni sono le CDN, le reti di distribuzione contenuti che possono servire a velocizzare il caricamento delle pagine HTML, delle immagini, dei file JS CSS e così via.

Alcuni esempi pratici di tecnologie che utilizzano i proxy sono riportate di seguito; molti servizi di hosting possono utilizzare queste tecnologie in maniera nativa, oppure su richiesta del cliente.

Proxy – lato server

Reverse proxy – lato server (HTTP)

Reverse proxy – lato TCP

(fonte, fonte)

Photo by jeanbaptisteparis


Ti piace questo articolo?

0 voti

Su Trovalost.it puntiamo sulla qualità dei contenuti da quando siamo nati: la tua sincera valutazione può aiutarci a migliorare ogni giorno.