Davide Targa website

Programming, web development and open source

Creazione Di Un Reverse Proxy Con Apache

Supponiamo di volere creare una configurazione di reverse proxy su Apache per il server CUPS. CUPS è normalmente accessibile localmente all’indirizzo http://localhost:631. Per renderlo disponibile anche a connessioni esterne (cosa sconsigliata) è necessario configurare un reverse proxy con Apache.

Un reverse proxy non fa altro che accettare le richieste dei client e redirezionare queste ultime verso un altro server. Praticamente renderemo disponibile CUPS all’indirizzo http://localhost/cups.

Prima di procedere alla configurazione del reverse proxy è necessario assicurarsi di avere installati i moduli mod_proxy e mod_html_proxy.

Una volta che si sono installati i moduli necessari (per esempio tramite apt-get, aptitude, …) possiamo abilitarli con il comando:

1
2
3
4
5
$ sudo a2enmod proxy_http
Considering dependency proxy for proxy_http:
Enabling module proxy.
Enabling module proxy_http.
Run '/etc/init.d/apache2 restart' to activate new configuration!

Abilitando proxy_http, verrà abilitato anche il modulo proxy in automatico.

Procediamo quindi alla configurazione del reverse proxy creando un nuovo file che chiameremo cups nella directory /etc/apache2/sites-available con il comando:

1
$ sudo vi /etc/apache2/sites-available/cups

A questo punto inseriamo nel file il codice riportato di seguito:

1
2
3
4
5
6
7
8
9
10
11
<IfModule mod_proxy.c>
  ProxyRequests Off
  ProxyPass /cups http://localhost:631
  ProxyHTMLURLMap http://localhost:631 /cups
  <Location /cups>
    ProxyPassReverse http://localhost:631/
    SetOutputFilter proxy-html
    ProxyHTMLURLMap /      /cups/
    ProxyHTMLURLMap /cups/ /cups/
  </Location>
</IfModule>

L’istruzione IfModule verifica che il modulo proxy sia abilitato. Successivamente, con l’istruzione ProxyPass, si specifica la mappatura dell’indirizzo sorgente con quello di destinazione. In questo caso /cups farà riferimento a http://localhost:631.

L’istruzione ProxyHTMLURLMap si occupa di riscrivere tutti i link assoluti presenti nell’html affinchè questi puntino alla nuova locazione (/cups).

Successivamente nel blocco vengono specificati l’indirizzo a cui dovrà puntare il reverse proxy, e la mappatura degli url da sostituire nell HTML finale.

Ora possiamo salvare il file e abilitare il nuovo sito con il comando:

1
2
3
$ sudo a2ensite cups
Enabling site cups.
Run '/etc/init.d/apache2 reload' to activate new configuration!

Fatto questo riavviamo apache con il comando:

1
2
3
$ sudo /etc/init.d/apache2 restart
 * Restarting web server apache2
 ... waiting                        [ OK ]

Ora possiamo accedere all’url http://localhost/cups e vedremo che CUPS è ora accessibile anche a questo indirizzo.

Comments