Guies i tutorials

Centenars de tutorials i guies pas a pas curosament escrits per el nostre equipo de suport.

Com crear un proxy invers amb Nginx

En aquest tutorial et mostrarem com i per quines raons crear un denominat "proxy invers" amb el popular servidor web Nginx, avui dia, és l'opció més popular per a aquest tipus de tasques.

Què és un proxy invers?

Un proxy invers o, reverse proxy en anglès, fa referència a un servidor encarregat de mostrar contingut d'un o més servidors que alhora romanen ocults del client o usuari.

Per exemple, si poses un servidor intermediari invers davant d'una aplicació web, els teus usuaris mai no interactuaran directament amb l'aplicació, sinó que serà el servidor intermediari invers l'encarregat de fer d'intermediari entre els usuaris i l'aplicació.

Els servidors intermediaris inversos poden ser una opció per incrementar la seguretat. Per exemple, ens permeten ocultar el veritable servidor on estan allotjades les teves aplicacions o també, ens permeten implementar capes de seguretat addicionals, com ara una connexió TLS que és aplicada pel proxy, però que no hagués estat nativament suportada per la teva aplicació.

Així mateix, un servidor intermediari invers resulta pràctic per servir múltiples aplicacions web des d'una mateixa màquina. L'aplicació generalment correrà en localhost sobre ports poc freqüents com 4000 o 5000. Aleshores, el servidor intermediari invers escoltarà els ports 80/443 i servirà el contingut d'una aplicació web o una altra segons el SNI o el host de la petició.

Crear un proxy invers amb Nginx, pas a pas

En primer lloc, hauràs de complir els següents requisits:

  1. Disposar daccés root a un servidor linux.
  2. Tenir instal·lat i activat Nginx. Assegurar-se de no tenir els ports 80 i 443 ocupats per un altre procés, com ara Apache.
  3. Tenir corrent una aplicació web a localhost a través d'un port arbitrari i que estigui disponible (per exemple el port 4000). Això es pot aconseguir fàcilment amb NodeJs o .NET Core.

1. Crea un nou fitxer de virtual host Pots aconseguir-ho utilitzant l'editor de textos nano. Una bona ruta per fer-ho és "sites-available" dins del directori de configuració de nginx.

nano /etc/nginx/sites-available/midominio.com.conf

2. Editar l'arxiu i afegeix la configuració per al proxy invers.

server {
  #Escolta en el port 80, ipv4.
  listen 80; 
  
  #Aquí hauràs d'introduir el nom del teu domini.
  server_name elmeudomini.com;

  access_log            /var/log/nginx/elmeudomini.com.access.log;

  location / {
      #La configuració del proxy.
      proxy_pass http://localhost:4000/;
  }
}

3. Reinicia Nginx Per a sistemes operatius basats en Debian: systemctl reload nginx

4. Llança la teva aplicació web Arribat a aquest punt hauràs d'executar la teva aplicació web, si encara no està corrent. A llarg termini voldràs executar com a servei / domini, però per provar serà suficient amb que l'executis manualment.

Per exemple, si teniu una aplicació NodeJS, la sintaxi és la següent: node /ruta/applicacion.js

5. Accedeix a la teva aplicació web des del navegador Si vas seguir correctament els passos d'aquest tutorial i si la teva màquina no té cap altra configuració de seguretat que t'obstaculitzi, ara hauries de ser capaç d'accedir a la teva aplicació des de "midominio.com" (o qualsevol que sigui el teu domini).

6. Serveix la teva aplicació de manera segura amb un certificat TLS (encarament recomanat) Gràcies a Nginx com a proxy invers, pots servir fàcilment les teves aplicacions de forma segura a través d'una connexió TLS. Per aconseguir-ho, només haurem de modificar el fitxer de configuració del "virtual host" de Nginx:

server {
    listen 80;
    #Redirecciona a una conexió segura.
    return 301 https://$host$request_uri;
}

server {

    listen 443;
    #Aquí hauràs d'introduir el nom del teu domini.
    server_name elmeudomini.com;

    #Aquí hauràs d'especificar la ruta del teu certificat SSL
    ssl_certificate           /etc/ruta/al/certificat/cert.crt;
    ssl_certificate_key       /etc/ruta/al/certificat/cert.key;

    ssl on;
    ssl_session_cache  shared:SSL:10m;
    ssl_protocols  TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
    ssl_ciphers EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH;

    ssl_prefer_server_ciphers on;
    ssl_session_timeout  10m;

    access_log            /var/log/nginx/midominio.com.access.log;

    location / {
    
      proxy_pass          http://localhost:4000;
    }
  }

Finalment, desa els canvis, reinicia nginx amb systemctl reload nginx i torna a executar l'aplicació, si encara no la tens com a servei o domini.

Ja està!

Si has seguit els passos correctament, ara disposaràs d'una aplicació web servida a través d'un proxy revers per nginx.

Més de 2000 m² d'instal·lacions pròpies i Centres de Dades a Espanya
La teva privacitat és important per a nosaltres
Utilitzem cookies pròpies per al correcte funcionament del lloc. A més, s'utilitzen altres de tercers només per a fins analítics. Aquesta informació no s'associa a cap persona perquè no s'emmagatzemin dades personals identificatives, sinó que és només una informació que es recull per identificar la sessió, amb l'objectiu de facilitar les anàlisis del lloc web. Pots canviar les teves preferències en qualsevol moment entrant de nou en aquest lloc web. Per a més informació sobre la nostra política de cookies pots visitar la nostra Informació cookies. Pots prémer el botó "Acceptar i tancar" per atorgar-nos el teu consentiment o pots accedir a informació més detallada i administrar les cookies.
Més de 2000 m² d'instal·lacions pròpies i Centres de Dades a Espanya
La teva privacitat és important per a nosaltres
Utilitzem cookies pròpies per al correcte funcionament del lloc. A més, s'utilitzen altres de tercers només per a fins analítics. Aquesta informació no s'associa a cap persona perquè no s'emmagatzemin dades personals identificatives, sinó que és només una informació que es recull per identificar la sessió, amb l'objectiu de facilitar les anàlisis del lloc web. Pots canviar les teves preferències en qualsevol moment entrant de nou en aquest lloc web. Per a més informació sobre la nostra política de cookies pots visitar la nostra Informació cookies. Pots prémer el botó "Acceptar i tancar" per atorgar-nos el teu consentiment o pots accedir a informació més detallada i administrar les cookies.