OffshoreVps
Tutoriales14 oct 20269 min de lecturaPor el equipo de OffshoreVps

Cómo alojar un sitio web en un VPS con Nginx y HTTPS

Instala Nginx en Ubuntu, crea un bloque server, añade un certificado gratuito de Let's Encrypt y acelera el sitio. Comandos para copiar y pegar y tener un sitio en vivo en 20 minutos.

El hosting compartido es fácil, pero un VPS te da velocidad, acceso root y ningún vecino ruidoso. Esta guía lleva un servidor Ubuntu 24.04 o 22.04 nuevo hasta un sitio web HTTPS en vivo con Nginx, en unos veinte minutos. Todos los comandos se pueden copiar tal cual.

Ventana de terminal en un VPS que muestra los comandos usados para alojar un sitio web con Nginx y HTTPS, empezando por “sudo apt update”
El tipo de comandos que ejecutarás en tu servidor en esta guía.

Qué necesitas

  • Un VPS con al menos 1 vCPU y 1 GB de RAM (nuestros planes básicos bastan para la mayoría de los sitios pequeños).
  • Un nombre de dominio apuntado a la dirección IP del servidor (consulta nuestra guía sobre apuntar un dominio a un VPS).
  • Acceso SSH como usuario sudo. Si el servidor es nuevo, haz primero el refuerzo básico.

1. Instala Nginx

sudo apt update
sudo apt install -y nginx
sudo systemctl enable --now nginx

Abre la dirección IP de tu servidor en un navegador. Deberías ver la página de bienvenida por defecto de Nginx. Si no es así, comprueba que tu cortafuegos permita los puertos 80 y 443:

sudo ufw allow "Nginx Full"
sudo ufw status

2. Crea la carpeta del sitio

sudo mkdir -p /var/www/example.com/html
sudo chown -R $USER:$USER /var/www/example.com
echo "<h1>It works</h1>" > /var/www/example.com/html/index.html

Sustituye example.com por tu propio dominio en todo el proceso.

Los pasos de esta guía en orden: 1. Qué necesitas; 2. 1. Instala Nginx; 3. 2. Crea la carpeta del sitio; 4. 4. Añade HTTPS gratis con Let's Encrypt; 5. 5. Hazlo más rápido; 6. Problemas comunes
Los pasos de esta guía, en orden.

3. Añade un bloque server

sudo nano /etc/nginx/sites-available/example.com
server {
    listen 80;
    listen [::]:80;
    server_name example.com www.example.com;
    root /var/www/example.com/html;
    index index.html;

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

Actívalo, prueba la configuración y recarga:

sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx

4. Añade HTTPS gratis con Let's Encrypt

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

Certbot edita tu bloque server, redirige HTTP a HTTPS e instala un temporizador que renueva el certificado automáticamente. Comprueba el temporizador con systemctl list-timers | grep certbot.

5. Hazlo más rápido

Activa la compresión y la caché del navegador para los archivos estáticos. Añade esto dentro del bloque server:

gzip on;
gzip_types text/css application/javascript application/json image/svg+xml;

location ~* \.(css|js|png|jpg|jpeg|webp|svg|woff2)$ {
    expires 30d;
    add_header Cache-Control "public";
}

Recarga Nginx después. Para sitios dinámicos como WordPress, instala PHP-FPM y pásale las peticiones .php, o pon un plugin de caché por delante.

Problemas comunes

  • 403 Forbidden: Nginx no puede leer la carpeta. Comprueba la propiedad y que todos los directorios padre sean ejecutables (chmod o+x).
  • Certbot falla: el dominio aún no apunta al servidor, o el puerto 80 está bloqueado.
  • Sigue apareciendo la página por defecto: elimina /etc/nginx/sites-enabled/default y recarga.