Come configurare un reverse proxy con Apache su Debian/Ubuntu

Come configurare un reverse proxy con Apache su Debian/Ubuntu

Introduzione

In questa guida vedremo come configurare un reverse proxy con Apache su Debian/Ubuntu.

Ma cos’è esattamente un “reverse proxy“?
Configurare un reverse proxy con Apache su Debian/Ubuntu significa instradare la richiesta di un dominio, di solito di 3° livello, come ad esempio sito.esempio.it, ad un IP posto all’interno della nostra rete.

Per evitare di esporre ad internet le varie macchine, si imposta un reverse proxy che è l’unico ad essere pubblico. Tutte le richieste arriveranno al server che smisterà successivamente, in base al tipo di richiesta, alla macchina interessata.

Se noi digitiamo sito.esempio.it, non risponderà direttamente la macchina interessata, ma passeremo attraverso il server proxy che penserà lui a instradare la richiesta, essendo così l’unico ad avere nel router le porta 80 e/o 443 aperte.

funzionamento reverse proxy con apache

Installare apache su Debian/Ubuntu

Per configurare il reverse proxy su apache, hai ovviamente bisogno prima di installarlo.

Se non ce l’hai, ti lascio il link per installare apache su Debian/Ubuntu, se invece ce l’hai già, passa al capitolo successivo.

Abilitare reverse proxy con Apache

Per poter utilizzare Apache come server proxy, c’è bisogno di abilitare 2 moduli, proxy e proxy_http.
Una volta fatto il login come root nel terminale della macchina dove hai installato apache, dai questo comando

a2enmod proxy
a2enmod proxy_http

dopo di che riavvia il servizio di apache con il comando

systemctl reload apache2

Configurare reverse proxy con Apache

Ora che i due moduli sono correttamente abilitati, passiamo alla configurazione.

Come per i vhost normali, anche qui dobbiamo creare i/il file .conf che contengono la regola del reverse proxy. Spostati nella cartella dove ci sono questi file

cd /etc/apache2/sites-available/

e crea un nuovo file, ad esempio nas.conf

nano nas.conf

Ti si aprirà l’editor di testo con ovviamente un file totalmente nuovo e vuoto, copia ed inserisci il codice qui sotto, che poi andrai a modificare

<VirtualHost *:80>
    ServerName domain.tld
    ServerAlias www.domain.tld
    ProxyRequests Off
    ProxyPass / http://123.456.7.891/
    ProxyPassReverse / http://123.456.7.891/
</VirtualHost>

Analizziamo bene cosa devi andare a modificare facendo finta che vuoi arrivare al tuo NAS di casa tramite il dominio nas.casamia.org
ServerName: qui dovrai inserire il dominio nas.casamia.org
ServerAlias: in questo caso specifico non devi mettere niente perchè stai usando un dominio di 3° livello, quindi puoi commentare la riga aggiungendo “#” prima di ServerAlias, diventando quindi #ServerAlias – nel caso invece in cui tu avessi il dominio, andrai ad inserire www.casamia.org con il “www”
ProxyPass: sostituisci l’IP con l’IP della macchina nella tua rete, ad esempio del NAS
ProxyPassReverse: anche qui sostituisci l’IP inserendo come sopra, quello riferito ad esempio al NAS

dovresti quindi avere come risultato una cosa tipo questa

<VirtualHost *:80>
    ServerName nas.casamia.org
    #ServerAlias www.domain.tld
    ProxyRequests Off
    ProxyPass / http://192.168.1.100/
    ProxyPassReverse / http://192.168.1.100/
</VirtualHost>

Salva il file con la combinazione CTRL + X, Y e poi Invio

Ora, c’è da abilitare questo file e da riavviare il servizio apache2, quindi in fila, dai questi comandi

a2ensite nome_file.conf
systemctl restart apache2

NB. se ancora non l’hai fatto, ricordati che devi aprire le porte 80 (http) e 443 (https) nel tuo router verso l’indirizzo IP in cui hai installato apache.

Da ora in poi, tutte le volte che digiterai da fuori casa nas.casamia.org verrai indirizzato direttamente alla pagina di login del tuo NAS.

Per creare altri reverse proxy, non devi fare altro che creare altri file.conf, scegliere dominio, ip macchina, abilitare file e riavviare apache.

Conclusione

In questa guida hai visto come configurare un reverse proxy con Apache su Debian/Ubuntu per instradare le richieste che fai ad un dominio verso una macchina nella tua rete non esposta ad internet ma passando dal reverse proxy.

Related Articles

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *