Configurar NGINX como proxy inverso

Configurar NGINX como proxy inverso en Ubuntu y derivados.

El servidor HTTP Nginx es uno de los más populares, y no solo por la velocidad que imprime a los sitios que aloja, sino porque también se puede utilizar para otras muchas funciones. Tal vez la más conocida es como proxy inverso.

Se conoce como proxy inverso, cuando un servidor (en este caso, Nginx HTTP) acepta todo el tráfico y lo reenvía a un recurso específico, por ejemplo a un servidor Apache.

Los motivos para instalar y usar un servidor proxy son muchos. Por ejemplo, un proxy inverso permite agregar seguridad al servidor principal, también se utiliza para equilibrar la carga, restringir el acceso a rutas definidas, permite evitar ataques, etc…

En el articulo de hoy instalaremos un servidor Nginx, y lo configuraremos como proxy inverso. El uso que le des, ya es tu responsabilidad.

 

Configurar NGINX como proxy inverso

Instalar Nginx es una tarea sencilla, tan solo debes ejecutar lo siguiente:

sudo apt-get update

sudo apt-get install nginx

Iniciamos y habilitamos el servicio para que arranque con el sistema.
sudo systemctl start nginx.service

sudo systemctl enable nginx.service

Para verificar que funciona correctamente, escribe en tu navegador web la ip del servidor, o localhost. Veras algo similar a la siguiente imagen…
Welcome to Nginx

Welcome to Nginx

 

Configurar Nginx

Normalmente el servidor proxy inverso escucha todo el tráfico del puerto HTTP predeterminado, el «80». Por otro lado, el backend server es el que contiene realmente los archivos del sitio, y deberá escuchar un puerto personalizado, se suele utilizar el «8080».

La función proxy_pass es la que proporciona el proxy inverso.

En este articulo, configuraremos Nginx para que escuche el puerto 80, y redirigiremos el tráfico al backend server que escuchara el puerto 8080.

Lo primero que haremos es crear un archivo proxy VirtualHost, lo llamaremos NginxProxy.

sudo nano /etc/nginx/sites-available/NginxProxy

Copia y pega lo siguiente (con tus datos reales):
server {
    listen 80;
    listen [::]:80;
    server_name  ejemplo.com www.ejemplo.com;

    proxy_redirect           off;
    proxy_set_header         X-Real-IP $remote_addr;
    proxy_set_header         X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header         Host $http_host;

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

Guarda el archivo y cierra el editor.

Verificamos que todo es correcto con el siguiente comando.

sudo nginx -t

ejemplo de salida valida…

nginx: the configuration file /etc/nginx/sites-available/NginxProxy syntax is ok
nginx: configuration file /etc/nginx/sites-available/NginxProxy test is successful

Solo nos falta habilitar el sitio proxy, y reiniciar Nginx.

sudo ln -s /etc/nginx/sites-available/NginxProxy /etc/nginx/sites-enabled/

sudo systemctl restart nginx.service

Ya lo tenemos configurado y funcionando.

 

Espero que este articulo te sea de utilidad, puedes ayudarnos a mantener el servidor con una donación (paypal), o también colaborar con el simple gesto de compartir nuestros artículos en tu sitio web, blog, foro o redes sociales.

 

Una respuesta

  1. Jorge
    18/09/2020

Agregar comentario