Guía Completa para Instalar y Configurar Nginx como Proxy Inverso en Ubuntu

Artículos Guías Manuales Sistemas Linux Windows Binario 0

Instalar y configurar Nginx como proxy inverso puede ayudar a distribuir el tráfico, mejorar la seguridad y optimizar el rendimiento de tus aplicaciones web. Aquí tienes una guía paso a paso para hacerlo en un sistema basado en Linux, como Ubuntu/Debian:

Paso 1: Actualizar el Sistema

Antes de instalar Nginx, es recomendable actualizar los paquetes del sistema:

sudo apt update
sudo apt upgrade

Paso 2: Instalar Nginx

Instala Nginx con el siguiente comando:

sudo apt install nginx

Paso 3: Verificar la Instalación

Verifica que Nginx esté instalado correctamente y en funcionamiento:

sudo systemctl status nginx

Deberías ver un mensaje que indique que Nginx está activo y corriendo. También puedes abrir tu navegador web y dirigirte a http://<tu_direccion_IP> para ver la página de bienvenida de Nginx.

Paso 4: Configurar Nginx como Proxy Inverso

4.1. Crear un Archivo de Configuración para el Sitio

Nginx almacena las configuraciones de los sitios en el directorio /etc/nginx/sites-available/. Crea un nuevo archivo de configuración para tu sitio:

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

4.2. Añadir la Configuración del Proxy Inverso

Añade la siguiente configuración básica en el archivo. Asegúrate de reemplazar tu_dominio y localhost:3000 con tu dominio real y el puerto de tu aplicación backend:

server {
listen 80;
server_name tu_dominio;

location / {
proxy_pass http://localhost:3000;
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.3. Habilitar el Sitio

Crea un enlace simbólico del archivo de configuración del sitio en el directorio sites-enabled:

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

4.4. Probar la Configuración

Antes de reiniciar Nginx, verifica que no haya errores en la configuración:

sudo nginx -t

Si no hay errores, recarga Nginx para aplicar los cambios:

sudo systemctl reload nginx

Paso 5: Configuración Adicional (Opcional)

5.1. Soporte SSL con Let's Encrypt

Para habilitar HTTPS, puedes usar Certbot para obtener un certificado SSL de Let's Encrypt:

Instala Certbot:

sudo apt install certbot python3-certbot-nginx

Obtén y configura el certificado SSL:

sudo certbot --nginx -d tu_dominio

Sigue las instrucciones para completar la configuración.

5.2. Configuración Avanzada

Puedes añadir más configuraciones de seguridad y optimización en tu archivo de configuración del sitio, como:

  • Redirección HTTP a HTTPS:

    server {
    listen 80;
    server_name tu_dominio;
    return 301 https://$host$request_uri;
    }
  • Límites de carga de archivos y tiempos de espera:

    client_max_body_size 10M;
    proxy_read_timeout 90;

Paso 6: Monitorear y Mantener Nginx

Para asegurarte de que Nginx funcione correctamente y de manera eficiente, monitorea sus logs y su rendimiento:

  • Logs de acceso y errores:

    tail -f /var/log/nginx/access.log
    tail -f /var/log/nginx/error.log
  • Comandos útiles:
    • Reiniciar Nginx:

      sudo systemctl restart nginx
    • Detener Nginx:

      sudo systemctl stop nginx
    • Iniciar Nginx:

      sudo systemctl start nginx

Con estos pasos, deberías tener Nginx funcionando como un proxy inverso en tu servidor, ayudando a gestionar el tráfico hacia tu aplicación backend de manera eficiente y segura.