🌐 Guía completa de Nginx en servidores VPS

Instalación, configuración y comandos esenciales

Nginx es uno de los servidores web más utilizados en entornos Linux y servidores VPS. Destaca por su alto rendimiento, bajo consumo de recursos y su uso como servidor web, proxy inverso y balanceador de carga.

En esta guía aprenderás a instalar, configurar y administrar Nginx en un servidor VPS, con comandos prácticos y ejemplos claros.

ℹ️ Nota

Los valores entre < > representan datos que debes adaptar a tu entorno
(usuario, dominio, rutas, nombre del proyecto, etc.).


🔍 ¿Qué es Nginx y para qué se usa?

Nginx se utiliza principalmente para:

  • Servir sitios web estáticos
  • Actuar como proxy inverso
  • Ejecutar aplicaciones web (Django, Node, PHP) junto a otros servicios
  • Gestionar múltiples sitios en un mismo servidor

En servidores VPS es una opción ideal por su eficiencia.


📦 Instalar Nginx en Linux (Debian / Ubuntu)

Actualizar el sistema:

sudo apt update

Instalar Nginx:

sudo apt install nginx

Comprobar que está activo:

sudo systemctl status nginx

🔄 Comandos básicos de Nginx

Iniciar Nginx:

sudo systemctl start nginx

Detener Nginx:

sudo systemctl stop nginx

Reiniciar Nginx:

sudo systemctl restart nginx

Recargar configuración (sin cortar servicio):

sudo systemctl reload nginx

📁 Rutas importantes de Nginx

/etc/nginx/nginx.conf
/etc/nginx/sites-available/
/etc/nginx/sites-enabled/
/var/log/nginx/access.log
/var/log/nginx/error.log
  • sites-available → configuraciones disponibles
  • sites-enabled → sitios activos
  • logs → errores y accesos

🌐 Configurar un sitio web (server block)

Crear archivo de configuración:

sudo nano /etc/nginx/sites-available/<NOMBRE_DEL_SITIO>

Ejemplo básico:

server {
    listen 80;
    server_name <DOMINIO_O_IP>;

    location / {
        root /var/www/<NOMBRE_DEL_SITIO>;
        index index.html index.htm;
    }
}

🔗 Activar el sitio en Nginx

sudo ln -s /etc/nginx/sites-available/<NOMBRE_DEL_SITIO> \
           /etc/nginx/sites-enabled/

Probar configuración:

sudo nginx -t

Reiniciar Nginx:

sudo systemctl restart nginx

🚀 Nginx como proxy inverso (Django / Gunicorn)

Ejemplo típico:

server {
    listen 80;
    server_name <DOMINIO_O_IP>;

    location /static/ {
        root /home/<USUARIO_APP>/<PROYECTO_DJANGO>;
    }

    location /media/ {
        root /home/<USUARIO_APP>/<PROYECTO_DJANGO>;
    }

    location / {
        include proxy_params;
        proxy_pass http://unix:/home/<USUARIO_APP>/<PROYECTO_DJANGO>/gunicorn.sock;
    }
}

Este esquema es muy común en despliegues Django en VPS.


📄 Ver logs y diagnosticar errores

Ver errores en tiempo real:

sudo tail -f /var/log/nginx/error.log

Ver accesos:

sudo tail -f /var/log/nginx/access.log

Los logs son clave para detectar:

  • errores de configuración
  • permisos incorrectos
  • problemas con Gunicorn o PHP

⚠️ Errores comunes en Nginx

  • Olvidar ejecutar nginx -t antes de reiniciar
  • Permisos incorrectos en archivos estáticos
  • Socket de Gunicorn inexistente
  • Dominio mal configurado

Siempre revisa los logs antes de reiniciar servicios.


🔐 Buenas prácticas en servidores VPS

  • Usa reload en lugar de restart cuando sea posible
  • No edites nginx.conf si no es necesario
  • Un sitio = un archivo en sites-available
  • Mantén backups de configuraciones

✅ Conclusión

Nginx es una pieza fundamental en la administración de servidores VPS y aplicaciones web.
Dominar sus comandos y estructura te permitirá desplegar, mantener y escalar proyectos web de forma profesional.

👉 Para complementar esta guía: