Configurar proxy invers a Nginx per tenir diferents Raspberry Pi i diferents IP i projectes

Configurar proxy invers a Nginx per tenir diferents Raspberry Pi amb distintes IP i projectes web

En aquest article t'explique com m'he configurat un proxy invers amb Nginx per a tenir unes Raspberry Pi amb una IP distinta per a oferir projectes Drupal en màquines separades.

Podem configurar un servidor intermediari invers, o proxy invers, per incrementar la seguretat en els nostres projectes ja que estarem ocultar el servidor real on tenim desplegat un projecte web i així l'atacant desconeixerà la IP real d'eixe ordinador. També ens pot servir per a diferenciar projectes en producció i projectes de testeig. O també ens pot servir com a balancejador per a no saturar massa un servidor amb moltes visites i consultes a les seues bases de dades.

Pel motiu que siga, un servidor intermediari invers és molt útil i molt senzill de configurar a Nginx.

MOTIVACIÓ
Jo he volgut tenir la Raspberry Pi nº 1 amb Drupal, on tinc diversos projectes, la Raspberry Pi nº 2 amb un altre Drupal i altres projectes, i la Raspberry Pi nº 3 amb aplicacions web nomès HTML. I fàcilment, des de l'Nginx del servidor intermediari, puc configurar l'accès als ports, certificats de Validació de Domini SSL, dominis i subdomis.

configurar servidor intermediari amb Nginx

Començarem en el punt en què tenim un domini "el_meu_domini.net" configurat contra el nostre router i si fem un ping a "el_meu_domini.net" ja ens respon bé la IP pública del nostre router.

Configurarem la NAT en el router per a que si rebem una petició al port 80 (http) i al port 443 (https) ens desviarà les peticions a la IP del servidor intermediari (la IP 192.168.0.2 del dibuix de dalt).

CONFIGURACIÓ D'UN NOU HOST A NGINX

Ara configurarem un nou host a Nginx. Per a açò farem:

$ touch /usr/local/etc/nginx/sites-available/el_meu_domini.net.conf

I afegirem:

server {
# Escoltem el port 80, ipv4.
listen 80;
# Especifiquem el nom del domini o subdomini
server_name el_meu_domini.net;
# Configurem els logs
access_log /var/log/nginx/el_meu_domini.net.access.log;
# Configurem el location
location / {
proxy_pass http://192.168.0.3; #<- IP de la màquina raspberry Pi on tenim eixe projecte
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}

I ja tenim la configuració bàsica de que si escribim "el_meu_domini.net" ens redireccionarà al port 80 de http://192.168.1.3. Aleshores, ara reiniciarem Nginx amb:

# service nginx restart
Performing sanity check on nginx configuration:
nginx: the configuration file /usr/local/etc/nginx/nginx.conf syntax is ok
nginx: configuration file /usr/local/etc/nginx/nginx.conf test is successful
Stopping nginx.
Waiting for PIDS: 22522.
Performing sanity check on nginx configuration:
nginx: the configuration file /usr/local/etc/nginx/nginx.conf syntax is ok
nginx: configuration file /usr/local/etc/nginx/nginx.conf test is successful
Starting nginx.

I si ja obrim un navegador i naveguem en el domini que tinguem configurat, ja veurem que no visualitza cap projecte web del servidor intermediari (192.168.0.2) sinó de la màquina 192.168.0.3:

servidor intermediari amb Nginx

SECURITZAR LA WEB AMB HTTPS
En aquest article he volgut comentar, de manera senzilla, la creació i configuració del servidor intermediari invers amb Nginx, però si et fixes la navegació ha segut http des del port 80 o 8080.

Doncs bé, jo recomane crear un certificat de validació de domini per a configurar una navegació segura https amb SSL. En aquest article Securitzar el servidor web Nginx amb SSL i Let's Encrypt a FreeBSD 13.2 ja vaig explicar com faig aquest procès.

RESULTATS QUE ESPERE
A partir d'ara aniré configurant-me alguns projectes web en una Raspberry i altres projectes que pot ser necessites altres versions de MariaDB, PHP o Drupal, en altra Raspberry. Però gràcies al servidor intermediari invers que acabem d'aprendre a muntar, tot serà transparent per a l'usuari final que nomès navega via https o http als meus projectes.

Doncs bé això és tot, espere que trobes útil aquest article i que et motive a compartir els teus trucs, els teus coneixements i els teus experiments amb el Programari Lliure. Pensa-ho, va, que la Comunitat del Programari Lliure va creixent gràcies a la documentació, el disseny, la formació o la programació, sigues part de la Comunitat :-)

La cultura i la lliure circulació de les idees és l'arma més efectiva contra les dictadures del pensament i contra la ignorància.

Utilitats

NAVEGACIÓ SENSE RATOLÍ

- Tab següent enllaç.
- Shift+Tab anterior enllaç.
- Enter activa l'enllaç.
- Alt+esquerra anar arrere.

CONTRAST DE COLORS

Accessibilitat - Color Negre
Accessibilitat - Color Groc
Accessibilitat - Color Verd

Accessibilitat - Color Blau
Accessibilitat - Color Crema
Accessibilitat - Color Blanc

 

PORTADES ALTERNATIVES