Cos'è il proxy inverso
In breve, un server proxy inverso funge da servizio intermediario tra il client che richiede una risorsa come una pagina HTTP e uno o più server. L'uso del proxy inverso consente molteplici vantaggi come prestazioni migliorate, bilanciamento del carico, manutenzione trasparente dei server dietro il server proxy inverso, maggiore sicurezza e altro ancora.
Scenario di base
In questa sezione configureremo un proxy inverso di base utilizzando il server web Nginx su Debian Linux. Eseguiamo due server separati server1
e server2
. Server1 esegue Debian Linux con proxy inverso Nginx e un indirizzo IP 10.1.1.251
. Server2 esegue il sito Web di base utilizzando il server Web Apache2 sull'indirizzo IP 10.1.1.252
. Assumiamo che Server2 sia attivo e funzionante per servire un contenuto sulla porta 80:
$ lynx -dump http://10.1.1.252 Hello this is apache2 sitting on host 10.1.1.252
Di conseguenza, il nostro obiettivo principale sarà dedicato al Server1 e alla configurazione del proxy inverso Nginx per fungere da intermediario tra client e Server2.
Configurazione proxy inverso minima
Questa sezione mostrerà una configurazione minimalista del proxy inverso che può essere successivamente migliorata per adattarsi al tuo ambiente. Iniziamo da nginx
installazione:
# apt-get install nginx
Successivamente, disabilitiamo un host virtuale predefinito:
# unlink /etc/nginx/sites-enabled/default
Quindi, crea un nuovo file all'interno di /etc/nginx/sites-available
directory per mantenere la configurazione del proxy inverso, ad esempio reverse-proxy
con un seguente contenuto:
server { listen 80; location / { proxy_pass http://10.1.1.252; } }
La configurazione del proxy inverso di cui sopra è assolutamente minimalista e autoesplicativa. La caratteristica principale è il proxy_pass
direttiva che istruisce nginx
per inoltrare tutte le richieste in comunicazione sul socket 10.1.1.251:80
alla presa remota 10.1.1.252:80
.Assicurati che il tuo nginx
la configurazione non contiene errori e riavvia nginx
.
# nginx -t nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful # service nginx restart
A questo punto dovresti essere in grado di interrogare il tuo nuovo proxy inverso sull'indirizzo IP 10.1.1.251
e raggiungi un contenuto di apache2
in esecuzione su indirizzo IP 10.1.1.251
:
$ lynx -dump http://10.1.1.251 Hello this is apache2 sitting on host 10.1.1.252
Una volta che la configurazione del proxy inverso di base sopra funziona nginx
contiene un numero di direttive aggiuntive per migliorare la tua configurazione.