CÓMO CONFIGURAR NGINX COMO PROXY INVERSO

Un Proxy Inverso actúa como un intermediario que recibe las peticiones de internet y las reenvía a un servidor interno.

Pasos para crear el proxy inverso

  1. Preparar el servidor de destino: Asegurarse de que la aplicación ya esté corriendo en un puerto local. Por ejemplo, una app de en el puerto 3000.
  2. Crear el archivo de configuración:

    sudo nano /etc/nginx/sites-available/reverse-proxy.cnf
    
  3. Ejemplo de configuración base:

    server {
        listen 80;
        server_name midominio.com; # Cambia esto por tu IP o dominio
    
        location / {
       # El puerto donde corre tu aplicación interna
       proxy_pass http://localhost:3000; 
    
       # Cabeceras necesarias para que tu app reconozca al cliente
       proxy_set_header Host $host;
       proxy_set_header X-Real-IP $remote_addr;
       proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
       proxy_set_header X-Forwarded-Proto $scheme;
        }
    }
    
  4. Activar la configuración:

    //Crear enlace simbólico
    sudo ln -s /etc/nginx/sites-available/mi-app /etc/nginx/sites-enabled/
    // Validar
    sudo nginx -t (Crucial para detectar errores).
    // Aplicar configuración
    sudo systemctl reload nginx
    

¿Por qué usar las cabeceras "proxy_set_header"?

Si no se incluyen, la aplicación creerá que todas las visitas vienen de "127.0.0.1", el propio Nginx en lugar de la IP real del usuario.
Siendo vital para:
  • Registros de logs precisos.
  • Sistemas de seguridad o bloqueo de IPs.
  • Gestionar certificados SSL correctamente.