A reverse proxy server is a type of proxy server that is deployed between clients and back-end/origin servers, for example, an HTTP server such as NGINX, Apache, etc.. or application servers written in Nodejs, Python, Java, Ruby, PHP, and many other programming languages.
È un gateway o un server intermediario che riceve una richiesta da un client, la passa a uno o più server backend e successivamente recupera la risposta dal server e la consegna nuovamente al client, facendo così apparire il contenuto come se provenisse dal server proxy inverso stesso.
In generale, un server proxy inverso è un proxy interno utilizzato come ‘front-end’ per controllare e proteggere l’accesso ai server backend su una rete privata: di solito è distribuito dietro il firewall di rete.
Aiuta i server backend a ottenere l’anonimato per migliorare la loro sicurezza. Nell’infrastruttura IT, un proxy inverso può anche funzionare come firewall dell’applicazione, bilanciatore di carico, terminatore TLS, acceleratore web (caching di contenuti statici e dinamici) e molto altro ancora.
In questo articolo, esamineremo i 10 migliori server proxy inversi open source che è possibile utilizzare su un sistema Linux.
Indice
1. HAProxy – (Bilanciatore di Carico TCP/HTTP)
HAProxy (HAProxy, che sta per High Availability Proxy), è un bilanciatore di carico e software di proxying gratuito, open source, molto veloce, affidabile e di alta qualità per applicazioni TCP e HTTP, costruito per l’alta disponibilità.
HAProxy è un proxy HTTP inverso, un proxy e normalizzatore TCP, un terminatore/iniziatore/scaricatore SSL/TLS, un proxy di caching, uno scaricatore di compressione HTTP, un regolatore di traffico, uno switch basato sul contenuto, un gateway FastCGI e altro ancora. È anche una protezione contro DDoS e abusi del servizio.
È alimentato da un motore event-driven e non bloccante che combina uno strato I/O molto veloce con un scheduler multi-threaded basato sulla priorità, il che gli consente di gestire facilmente decine di migliaia di connessioni concorrenti.
È notevole che HAProxy utilizzi il protocollo PROXY per passare le informazioni di connessione del client ai server backend o di origine in modo che un’applicazione ottenga tutte le informazioni rilevanti.
Alcune delle funzionalità di base di HAProxy includono il proxy, il supporto SSL, il monitoraggio degli stati del server e il loro stato, l’alta disponibilità, il bilanciamento del carico, la stickiness (mantenendo un visitatore sullo stesso server anche attraverso vari eventi), lo switching del contenuto, la riscrittura e il reindirizzamento HTTP, la protezione del server, la registrazione, le statistiche e molto altro ancora.
2. NGINX – (Server Web HTTP e Reverse Proxy)
NGINX è un server HTTP e reverse proxy gratuito, open-source, ad alte prestazioni e molto popolare. Funziona anche come server proxy IMAP/POP3. NGINX è noto per le sue alte prestazioni, stabilità, ricco set di funzionalità, configurazione semplice e flessibile e basso consumo di risorse (in particolare una piccola impronta di memoria).
Proprio come HAProxy, NGINX ha un’architettura ad eventi, quindi non ha problemi a gestire decine di migliaia di connessioni simultanee, poiché utilizza il protocollo PROXY di HAProxy.
NGINX supporta il reverse proxy accelerato con caching utilizzando il modulo ngx_http_proxy_module, che consente di inviare richieste a un altro server tramite protocolli diversi da HTTP, come FastCGI, uwsgi, SCGI e Memcached.
È importante notare che supporta il bilanciamento del carico e la tolleranza ai guasti, che sono aspetti vitali dei sistemi di calcolo distribuito su larga scala. Il modulo ngx_http_upstream_module consente di definire gruppi di server backend per distribuire le richieste provenienti dai clienti.
Ciò rende le tue applicazioni più robuste, disponibili e affidabili, altamente scalabili, con tempi di risposta e throughput. Inoltre, per quanto riguarda la sicurezza, supporta la terminazione SSL/TLS e molte altre funzionalità di sicurezza.
Ecco alcuni utili articoli sul server web Nginx che potresti voler leggere:
3. Varnish – (Proxy di caching inverso)
Varnish HTTP Cache (o Varnish Cache o semplicemente Varnish) è un software di caching reverse-proxy gratuito, open-source, ad alte prestazioni e molto popolare, meglio conosciuto come acceleratore di applicazioni web, progettato per migliorare le prestazioni HTTP utilizzando il caching lato server.
Viene implementato tra un client e un server web HTTP o un server di applicazioni; ogni volta che un client richiede informazioni o una risorsa da un server web, Varnish memorizza una copia delle informazioni, quindi la prossima volta che il client richiede le stesse informazioni, Varnish le servirà senza inviare una richiesta al server web, riducendo così il carico sul server e accelerando la consegna dei contenuti web.
Varnish utilizza un linguaggio di configurazione flessibile noto come Linguaggio di configurazione Varnish (LVC) che, tra le altre cose, consente agli amministratori di sistema di configurare come devono essere elaborate le richieste in ingresso, quale contenuto deve essere servito e da dove, e come la richiesta o la risposta deve essere modificata, e molto altro ancora.
Il vernice è anche estensibile: può essere esteso utilizzando i Moduli Vernice (VMOD) e gli utenti possono scrivere i propri moduli personalizzati o utilizzare moduli forniti dalla comunità.
Il principale limite di Vernice è la mancanza di supporto per SSL/TLS. L’unico modo per abilitare HTTPS è distribuire un terminatore o un offloader SSL/TLS come HAProxy o NGINX davanti ad esso.
4. Træfɪk – (Il Proxy di Applicazioni Nativo per il Cloud)
Træfɪk (pronunciato Traffic) è un reverse proxy HTTP e bilanciatore di carico gratuito, open-source, moderno e veloce per distribuire micro-servizi che supporta più algoritmi di bilanciamento del carico.
Può interfacciarsi con vari provider (o meccanismi di discovery dei servizi o strumenti di orchestrazione) come Kubernetes, Docker, Etcd, Rest API, Mesos/Marathon, Swarm e Zookeeper.
La sua caratteristica amabile è la sua capacità di gestire automaticamente e dinamicamente la sua configurazione scoprendo così la configurazione corretta per i tuoi servizi. Lo fa esaminando la tua infrastruttura per trovare informazioni rilevanti e scoprire quale servizio serve quale richiesta dal mondo esterno. I provider dicono a Træfɪk dove si trovano le tue applicazioni o micro-servizi.
Le altre funzionalità di Træfɪk supportate sono per WebSockets, HTTP/2 e GRPC, ricarica a caldo (aggiorna continuamente la sua configurazione senza riavvi), HTTPS usando certificati Let’s Encrypt (supporto per certificati wildcard) e espone un’API REST. Tiene anche i log di accesso e fornisce metriche (Rest, Prometheus, Datadog, Statsd, InfluxDB).
Inoltre, Træfɪk include un’interfaccia utente web basata su HTML semplice utilizzata per tenere d’occhio gli eventi. Supporta anche interruttori a circuito, ripetizione delle richieste, limitazione del tasso e autenticazione di base.
5. Apache Traffic Server – (Server Proxy Inversione e Inoltrato)
Precedentemente un prodotto commerciale di proprietà di Yahoo che è stato successivamente ceduto alla Fondazione Apache, Apache Traffic Server è un server proxy inverso e inoltrato gratuito, open source e veloce.
Il Server Traffic funge anche da bilanciatore di carico e può partecipare a gerarchie di cache flessibili. È noto per aver gestito oltre 400 TB al giorno di traffico su Yahoo.
Dispone di un set di opzioni di mantenimento della connessione, filtraggio o anonimizzazione delle richieste di contenuti ed è estensibile tramite un’API che consente agli utenti di creare plugin personalizzati per modificare gli header HTTP, gestire le richieste ESI o progettare nuovi algoritmi di cache.
6. Squid – (Caching e Inoltro Server Proxy HTTP)
Squid è un server proxy e daemon di cache Web gratuito, open source e ben noto che supporta vari protocolli come HTTP, HTTPS, FTP e altro ancora. Dispone di una modalità proxy inverso (acceleratore httpd) che memorizza nella cache le richieste in ingresso per i dati in uscita.
Supporta ricche opzioni di ottimizzazione del traffico, controllo degli accessi, autorizzazione, strutture di registrazione e molto altro ancora.
7. Pound – (Proxy inverso e bilanciamento del carico)
A Pound is another free and open-source, lightweight reverse proxy and load balancer and front-end for web servers. It is also an SSL terminator (that decrypts HTTPS requests from clients and sends them as plain HTTP to the back-end servers).
Un sanificatore HTTP/HTTPS (che verifica le richieste per correttezza e accetta solo quelle ben formate) e un server di fail-over.
8. Apache – (Server Web HTTP)
Il server HTTP Apache (noto anche come HTTPD), il server web più popolare al mondo, può anche essere implementato e configurato per agire come proxy inverso.
Apache eccelle nel reindirizzare le richieste dei client ai server di backend, migliorando la sicurezza, il bilanciamento del carico e ottimizzando le prestazioni delle applicazioni web. Agendo come intermediario, Apache può distribuire efficientemente il traffico in ingresso a più istanze di server, garantendo un’elevata disponibilità e un’esperienza utente senza interruzioni.
Le sue opzioni di configurazione robuste e personalizzabili la rendono una scelta di prim’ordine per le organizzazioni in cerca di una soluzione affidabile per le esigenze di reverse proxy, sia per il caching dei contenuti che per la consegna delle applicazioni.
9. Skipper – (Router HTTP e Reverse Proxy)
Skipper è un router HTTP e reverse proxy open source gratuito per la composizione di servizi, compresi i casi d’uso come Ingress di Kubernetes.
È costruito per gestire un numero significativo di definizioni di route HTTP configurate dinamicamente, superando 800.000 route, con condizioni di ricerca complesse e offrendo flessibilità per migliorare il flusso delle richieste con filtri.
Può essere facilmente distribuito così com’è o può essere esteso incorporando ricerca personalizzata, logica di filtro e fonti di configurazione.
10 Caddy 2 – Server veloce con HTTPS automatico
Caddy 2 è un server web e reverse proxy open source rinomato per la sua semplicità e versatilità, che offre un’interfaccia utente user-friendly e HTTPS automatico per impostazione predefinita, rendendolo una scelta accessibile sia per i principianti che per gli utenti esperti.
Caddy 2 è progettato per gestire senza sforzo l’hosting web, HTTP/2, il bilanciamento del carico e il proxy, migliorando le prestazioni e la sicurezza del sito web. La sua natura open-source incoraggia i contributi della comunità ed è diventato popolare per la sua facilità d’uso e le funzionalità moderne nel mondo dell’hosting web e della gestione del server.
Conclusione
Ecco tutto ciò che avevamo per te in questa guida. Per ulteriori informazioni su ciascuno degli strumenti in questa lista, visita i rispettivi siti web. Non dimenticare di condividere i tuoi pensieri con noi tramite il modulo di feedback qui sotto.
Source:
https://www.tecmint.com/open-source-reverse-proxy-servers-for-linux/