Servidores y VPS

Cómo Instalar y configurar Nginx en un VPS Linux

Guía paso a paso para instalar Nginx en un VPS con Ubuntu o Debian, configurar tu primer sitio virtual y dejarlo listo para producción.

Detailed view of a server rack with a focus on technology and data storage.

Para instalar Nginx en un VPS con Ubuntu o Debian basta con ejecutar sudo apt install nginx — el servidor queda activo de inmediato. Esta guía te lleva desde ese primer comando hasta tener un sitio real sirviendo tráfico con un virtual host configurado correctamente.

¿Por qué Nginx y no Apache?

Nginx nació para resolver el C10K problem: atender miles de conexiones simultáneas sin crear un proceso por cada una. Usa una arquitectura orientada a eventos que consume poca memoria incluso bajo carga alta.

  • Rendimiento: archivos estáticos a velocidad de disco; proxy inverso sin overhead.
  • Memoria: un worker Nginx ocupa ~5 MB, frente a los ~20-30 MB de un worker Apache prefork.
  • Versatilidad: sirve como servidor web, proxy inverso, balanceador de carga y caché HTTP.
  • Adopción: es el servidor web más usado en sitios de alto tráfico a nivel mundial.

Si tu VPS tiene 1-2 GB de RAM y prevés picos de tráfico, Nginx es la elección natural. Para profundizar en cómo dimensionar tu servidor, revisa la guía de servidores VPS en nuestro blog.

Requisitos previos

  • VPS con Ubuntu 22.04 / 24.04 o Debian 11 / 12 (estas instrucciones aplican a ambos).
  • Acceso SSH con usuario sudo (no trabajes como root directo).
  • Puerto 80 y 443 abiertos en el firewall del proveedor y en UFW/iptables.
  • Un nombre de dominio apuntando a la IP del VPS (para el bloque server con nombre).

Instalación de Nginx paso a paso

1. Actualiza los repositorios e instala el paquete

sudo apt update
sudo apt install nginx -y

Al terminar, Nginx arranca automáticamente. Verifica el estado:

sudo systemctl status nginx

Deberías ver active (running) en verde.

2. Abre los puertos en UFW

Si usas UFW (cortafuegos de Ubuntu), habilita el perfil de Nginx:

sudo ufw allow 'Nginx Full'
sudo ufw status

Nginx Full abre tanto el puerto 80 (HTTP) como el 443 (HTTPS). Si aún no tienes certificado, usa Nginx HTTP provisionalmente.

3. Comprueba que sirve la página por defecto

Abre en tu navegador http://<IP-del-VPS>. Debes ver la pantalla de bienvenida de Nginx con el texto "Welcome to nginx!".

Configurar un Virtual Host (bloque server)

Nginx organiza los sitios en bloques server dentro de /etc/nginx/sites-available/. Cada archivo describe un dominio.

Crear el directorio del sitio

sudo mkdir -p /var/www/tusitio.com/html
sudo chown -R $USER:$USER /var/www/tusitio.com/html

Escribir el bloque server

sudo nano /etc/nginx/sites-available/tusitio.com

Pega el siguiente bloque base:

server {
    listen 80;
    listen [::]:80;

    server_name tusitio.com www.tusitio.com;
    root /var/www/tusitio.com/html;
    index index.html index.htm index.php;

    location / {
        try_files $uri $uri/ =404;
    }

    access_log /var/log/nginx/tusitio.com.access.log;
    error_log  /var/log/nginx/tusitio.com.error.log;
}

Activar el sitio y recargar Nginx

sudo ln -s /etc/nginx/sites-available/tusitio.com /etc/nginx/sites-enabled/
sudo nginx -t          # valida la configuración
sudo systemctl reload nginx

El comando nginx -t es crítico: nunca recargues sin validar primero.

Añadir HTTPS con Let's Encrypt (Certbot)

Un sitio sin HTTPS no debe salir a producción. Certbot automatiza la obtención y renovación de certificados gratuitos.

sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d tusitio.com -d www.tusitio.com

Certbot modificará tu bloque server para redirigir HTTP → HTTPS y añadir los certificados. La renovación automática ya viene configurada vía un timer systemd.

Verifica la renovación con:

sudo certbot renew --dry-run

Ajustes de rendimiento recomendados

Directiva Archivo Valor recomendado Efecto
worker_processes nginx.conf auto Un worker por núcleo CPU
worker_connections nginx.conf 1024 Conexiones por worker
keepalive_timeout nginx.conf 65 Reutilización de conexiones TCP
gzip on nginx.conf Habilitado Compresión de respuestas texto
server_tokens off nginx.conf off Oculta versión de Nginx (seguridad)

Edita /etc/nginx/nginx.conf dentro del bloque http { } para aplicar estos valores, luego ejecuta sudo nginx -t && sudo systemctl reload nginx.

Conclusiones clave

  • Nginx se instala con un solo comando APT y arranca de forma inmediata en Ubuntu y Debian.
  • Los bloques server en /etc/nginx/sites-available/ son la unidad de configuración por dominio.
  • Siempre valida con nginx -t antes de recargar para evitar interrupciones.
  • Certbot + Let's Encrypt provee HTTPS gratuito con renovación automática.
  • Los ajustes de worker_processes auto y gzip on bastan para la mayoría de VPS de gama media.

¿Listo para llevar tu sitio al siguiente nivel? En elenlace.com te ayudamos a configurar, optimizar y securizar tu VPS para que tu proyecto crezca sin interrupciones.

Preguntas frecuentes

¿Nginx reemplaza a Apache o pueden coexistir?

Pueden coexistir en distintos puertos, pero en el mismo puerto 80/443 solo puede escuchar uno. Lo más común en VPS es elegir uno como servidor principal; Nginx como proxy inverso delante de Apache también es una opción válida pero añade complejidad innecesaria si empiezas de cero.

¿Cómo reinicio Nginx sin cortar el tráfico?

Usa sudo systemctl reload nginx en lugar de restart. El reload recarga la configuración sin cerrar las conexiones existentes, lo que evita downtime.

¿Puedo ejecutar PHP con Nginx?

Sí, pero Nginx no procesa PHP por sí mismo: necesitas PHP-FPM. Instala php-fpm y añade un bloque location ~ \.php$ en tu bloque server que pase las peticiones al socket Unix de FPM. Es la combinación más eficiente para WordPress y aplicaciones PHP en VPS.

¿Dónde están los logs de errores de Nginx?

El log de errores global está en /var/log/nginx/error.log. Si defines error_log en tu bloque server, tendrás un log por sitio, lo que facilita mucho el diagnóstico cuando administras varios dominios en el mismo VPS.

¿Prefieres que lo hagamos por ti? En El Enlace resolvemos hosting y desarrollo web profesional.

Recursos útiles

Otros proveedores y guías que vale la pena comparar:

← Todos