Introduzione
Le estensioni di terze parti sono aggiunte estremamente utili. Queste rendono la tua esperienza di configurazione e di lavoro con un server, come Apache HTTP, molto più semplice e agevole. In caso di necessità, puoi persino utilizzare alcuni di questi moduli in Apache per eseguire un reverse proxy. Puoi rimuovere un livello dalla configurazione del tuo server oppure puoi utilizzare un modulo per reindirizzare le connessioni.
In questa guida parleremo di Apache e dei vari moduli associati alla piattaforma server, come mod_proxy. Vedremo anche come utilizzarlo come reverse proxy per reindirizzare le connessioni ai tuoi server applicativi backend.
Cos'è Apache?
Apache è un server HTTP che viene comunemente utilizzato per scopi legati al web. Ma puoi usarlo per una varietà di motivi e su diverse piattaforme. Puoi installare il tuo server web Apache su Ubuntu seguendo il nostro tutorial passo-passo. Inoltre, segui questo tutorial per imparare a proteggere il tuo server Apache con Let’s Encrypt. Puoi anche dare un'occhiata a come configurare i virtual host di Apache su Ubuntu 20.04.
Puoi esplorare ulteriormente le funzioni e l'implementazione di Apache con l'aiuto di moduli esterni. Si tratta di moduli di terze parti che puoi utilizzare per eseguire varie attività relative a connessioni e configurazioni. Ad esempio, puoi utilizzare il modulo mod_rewrite per eseguire la riscrittura degli URL basata su regole. Un altro di questi moduli è mod_proxy. Quest'ultimo modulo è ampiamente sottoutilizzato nella community. Principalmente perché molte persone non sono a conoscenza dell'estensione delle sue funzionalità e applicazioni. Mod_proxy, come suggerisce il nome, può aiutarti a configurare un gateway o un proxy per i server backend.
Esploriamo l’uso di mod_proxy in dettaglio e come puoi usarlo come reverse proxy.
Mod_proxy: Usare Apache come Reverse Proxy
Come probabilmente avrai intuito, mod_proxy è un modulo. Si tratta di un modulo di Apache che puoi utilizzare per stabilire e reindirizzare varie connessioni. Puoi anche attivarlo e configurarlo come qualsiasi altro modulo sul tuo sistema. La particolarità di mod_proxy è che non si tratta di un solo modulo. Infatti, comprende una raccolta di diversi moduli che troverai di seguito. Ognuno di questi ha una propria funzione da svolgere. In questo modo, mod_proxy ti offre una grande diversità di funzionalità.
Dai un'occhiata ai seguenti moduli di mod_proxy:
mod_proxy
Questo è il modulo proxy principale. In Apache, puoi utilizzare questo modulo per configurare e gestire varie connessioni. Può anche aiutarti a reindirizzare le connessioni.
mod_proxy_http
Come suggerisce il nome, questo modulo gestisce i protocolli HTTP e HTTPS. Puoi utilizzare questo modulo per implementare le funzionalità proxy di questi protocolli.
mod_proxy_ftp
Mod_proxy_ftp serve quando si gestisce il protocollo FTP.
mod_proxy_connect
Questo modulo è utile quando si esegue il tunneling SSL.
mod_proxy_ajp
Puoi usare mod_proxy_ajp quando lavori con il protocollo AJP.
mod_proxy_wstunnel
Questo è utile quando si lavora con i web socket come WS e WSS.
mod_proxy_balancer
Se desideri accedere alle funzionalità di bilanciamento del carico e clustering, puoi utilizzare questo modulo.
mod_cache
Il modulo mod_cache è utile, come prevedibile, a scopo di caching.
mod_headers
Puoi utilizzare questo modulo per gestire gli header creati utilizzando il protocollo HTTP.
mod_deflate
Questo modulo viene utilizzato a scopo di compressione.
Se desideri conoscere ancora più dettagli su questi moduli, puoi visitare il sito ufficiale di Apache. Anche la documentazione ufficiale ti fornisce maggiori informazioni su mod_proxy e su Apache stesso.
Come installare Apache e mod_proxy?
Ecco alcuni passaggi facili da seguire per installare Apache e mod_proxy sul tuo sistema:
- Preparare il server
Prima di tutto, devi assicurarti che il tuo server cloud sia pronto. Per fare questo, devi aggiornare il tuo sistema operativo e il software associato alle versioni più recenti.
Usa i seguenti comandi per aggiornare le tue applicazioni:
|
1 2 3 |
apt install aptitude aptitude update aptitude -y upgrade |
- Installare il pacchetto dei componenti essenziali
Una volta preparato il server, è necessario equipaggiarlo con gli strumenti essenziali. A questo scopo, devi installare il pacchetto build-essential. Questo pacchetto consiste in tutti gli strumenti di base necessari per installare programmi dai sorgenti. Puoi installarlo con questo comando:
|
1 |
aptitude install -y build-essential |
- Ottieni i moduli e le dipendenze
Infine, è necessario installare i moduli e le dipendenze. Puoi farlo eseguendo il seguente comando:
|
1 |
aptitude install -y apache2 apache2-bin libxml2-dev |
Attivazione dei moduli: come configurare Apache con connessioni proxy?
Prima ancora di passare alla configurazione di Apache, è necessario attivare i moduli. Questi moduli ti aiuteranno a effettuare le configurazioni necessarie e a eseguire varie attività.
Per cominciare, devi verificare quali moduli sono già attivi sul tuo sistema. Non solo, ma devi anche assicurarti che tutti i moduli siano installati correttamente e possano essere abilitati. L'esecuzione di questo comando mostrerà tutti i moduli disponibili sul tuo server Apache:
|
1 |
a2enmod |

Come puoi vedere, la risposta mostra tutti i moduli disponibili sotto forma di un elenco dettagliato. Scorri questo elenco e stabilisci quali moduli desideri attivare. Per farlo sapere ad Apache, puoi utilizzare il seguente comando e inserire i moduli desiderati al posto degli esempi:
|
1 |
proxy proxy_ajp proxy_http rewrite deflate headers proxy_balancer proxy_connect proxy_html lbmethod_byrequests |
D'altra parte, puoi anche attivare ogni modulo singolarmente. Per farlo, utilizzeresti i seguenti comandi:
|
1 2 3 4 5 6 7 8 9 10 |
a2enmod proxy a2enmod proxy_http a2enmod proxy_ajp a2enmod rewrite a2enmod deflate a2enmod headers a2enmod proxy_balancer a2enmod proxy_connect a2enmod proxy_html a2enmod lbmethod_byrequests |
Alcuni moduli saranno probabilmente attivati per impostazione predefinita sul tuo server. Potresti chiederti come confermare che siano abilitati. Per assicurarti che il modulo desiderato sia attivo, puoi provare ad attivarlo due volte. Questo garantirà che il modulo sia abilitato.
- Modificare le impostazioni di configurazione predefinite
Per prima cosa, devi modificare le impostazioni di configurazione predefinite. Per farlo, devi accedere al file di configurazione predefinito che è 000-default.conf. Questo file si trova all'interno di /etc/apache2/sites-enabled. Dobbiamo modificarlo in modo tale che acquisisca la funzione di proxy.
Inizierai aprendo l'editor di testo nano per modificare l'host virtuale predefinito. Puoi farlo eseguendo questo comando:
|
1 |
nano /etc/apache2/sites-enabled/000-default.conf |
Ci riferiremo collettivamente a mod_virtual host e mod_proxy come host virtuale proxy. Ora puoi implementare le seguenti impostazioni di configurazione. Puoi apportare le modifiche necessarie come ritieni opportuno per il tuo sistema e le tue esigenze:
|
1 2 3 4 5 6 7 |
<VirtualHost *:*> ProxyPreserveHost On ProxyPass / http://0.0.0.0:8080/ ProxyPassReverse / http://0.0.0.0:8080/ ServerName localhost </VirtualHost> |
Puoi salvare e uscire premendo Ctrl + X e confermando con Y.
- Attivare la funzione di bilanciamento del carico
Il bilanciamento del carico ti aiuta a distribuire efficacemente le connessioni sul tuo proxy. Questa è un'idea molto utile per quando utilizzi più server applicativi backend invece di uno solo. La funzione di bilanciamento del carico distribuirà la connessione o il "carico".
Per abilitare questa funzione, devi ripetere i passaggi menzionati in precedenza in questa guida. Tuttavia, è necessario utilizzare le seguenti impostazioni di configurazione durante la configurazione dell'host virtuale:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
<VirtualHost *:*> <Proxy balancer://mycluster> # Definisci i server back-end: # Server 1 BalancerMember http://0.0.0.0:8080/ # Server 2 BalancerMember http://0.0.0.0:8081/ </Proxy> # Applica le impostazioni VH come desiderato # Tuttavia, configura l'argomento ProxyPass per # utilizzare "mycluster" per bilanciare il carico ProxyPass / balancer://mycluster </VirtualHost> |
- Attiva il supporto Reverse Proxy
Dovrai fare in modo che un host virtuale supporti il tuo reverse proxy se stai lavorando con connessioni SSL e certificati. Questo host virtuale secondario deve avere le seguenti impostazioni. Dovrai eseguire le istruzioni dei passaggi precedenti. Tutto ciò che devi fare è sostituire le opzioni di configurazione con quelle menzionate di seguito:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
<VirtualHost *:443> SSLEngine On # Imposta il percorso del certificato SSL # Uso: SSLCertificateFile /path/to/cert.pem SSLCertificateFile /etc/apache2/ssl/file.pem # Server per fare il proxy della connessione, o; # Elenco dei server applicativi: # Uso: # ProxyPass / http://[IP Addr.]:[port]/ # ProxyPassReverse / http://[IP Addr.]:[port]/ # Esempio: ProxyPass / http://0.0.0.0:8080/ ProxyPassReverse / http://0.0.0.0:8080/ # Oppure, bilancia il carico: # ProxyPass / balancer://balancer_cluster_name </VirtualHost> |
Sarà inoltre necessario abilitare il modulo SSL affinché la configurazione sopra indicata funzioni:
|
1 |
sudo a2enmod ssl |
- Riavvia Apache
Tutte le configurazioni sono state completate. Infine, puoi riavviare il tuo server Apache per applicare le modifiche. Puoi riavviare Apache eseguendo il seguente comando:
|
1 |
service apache2 restart |
Conclusione
Ecco fatto! Hai configurato con successo un gateway reverse proxy nel tuo server Apache. Ora Apache reindirizzerà le connessioni in entrata ai tuoi server applicativi nel backend.
Il bello di questo processo è che richiede pochissimo sforzo ed è piuttosto semplice. Ora che conosci i passaggi esatti per arrivarci, non dovresti avere alcun problema a configurare un reverse proxy in Apache.
Buon divertimento!

Commenti
Ancora nessun commento. Scrivi il primo.