FAQ

Instalar y configurar Nginx en Debian 12 (Bookworm)

Artikel suchen

Instalar y configurar Nginx en Debian 12 (Bookworm)

3 Views

Guía paso a paso para instalar Nginx en Debian 12, gestionar el servicio con systemd, crear un virtual host y habilitar HTTPS con Let’s Encrypt. Para clientes Boxis y administradores de sistemas.

Instalar y configurar Nginx en Debian 12 (Bookworm)

Última actualización: marzo de 2026
Tiempo de lectura: ~12 minutos
Audiencia: administradores de sistemas y usuarios avanzados con un servidor Debian 12.

Nginx es un servidor HTTP de alto rendimiento y un proxy inverso. En Debian 12 (Bookworm) encaja bien con systemd y resulta útil delante de PHP, Node.js o APIs. Esta guía cubre una instalación ordenada, recomendaciones básicas de seguridad, un virtual host mínimo y, opcionalmente, TLS con Let’s Encrypt.


Qué obtendrá

  • Nginx instalado desde los repositorios de Debian y el servicio comprobado.
  • Puertos HTTP/HTTPS abiertos (ejemplo con UFW).
  • Raíz de documentos dedicada y un bloque server propio.
  • Opcional: certificado Let’s Encrypt y renovación automática.

Requisitos previos

  • Servidor Debian 12 con acceso SSH.
  • Cuenta de usuario con privilegios sudo (evite trabajar siempre como root).
  • Nombre DNS (p. ej. app.example.com) apuntando a la IP pública si desea HTTPS y renovación automática.
  • Conocimientos básicos de la línea de comandos.

Nota Boxis: en alojamiento gestionado por Boxis, los cambios a nivel de servidor pueden estar restringidos; abra un ticket antes de modificar la pila web en entornos compartidos.


1. Actualizar índices de paquetes e instalar Nginx

sudo apt update
sudo apt install -y nginx

Debian ofrece una versión probada de Nginx; los repositorios de terceros solo son necesarios si requiere módulos concretos.


2. Cortafuegos: permitir HTTP y HTTPS (UFW)

Si UFW está activo:

sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw reload
sudo ufw status

Con nftables o grupos de seguridad en la nube, abra TCP 80 y TCP 443 allí.


3. Gestionar Nginx con systemd

Acción Comando
Habilitar al arranque sudo systemctl enable nginx
Iniciar sudo systemctl start nginx
Estado sudo systemctl status nginx
Recargar configuración sudo systemctl reload nginx
Probar sintaxis sudo nginx -t

Tras editar la configuración, ejecute siempre nginx -t antes de recargar.


4. Ubicación de la configuración en Debian

Estructura habitual:

  • Configuración principal: /etc/nginx/nginx.conf
  • Sitios: /etc/nginx/sites-available/ (enlaces en sites-enabled/)
  • Extra: /etc/nginx/conf.d/*.conf

Prefiera sites-available / sites-enabled para activar o desactivar sitios sin borrar archivos.


5. Crear un virtual host (bloque server)

Ejemplo: app.example.com con archivos en /var/www/app.example.com/html.

5.1 Directorios y página de prueba

sudo mkdir -p /var/www/app.example.com/html
echo '<!DOCTYPE html><html><head><meta charset="utf-8"><title>OK</title></head><body><h1>It works</h1></body></html>' | sudo tee /var/www/app.example.com/html/index.html
sudo chown -R www-data:www-data /var/www/app.example.com

5.2 Archivo de configuración

Cree /etc/nginx/sites-available/app.example.com.conf:

server {
    listen 80;
    listen [::]:80;
    server_name app.example.com;

    root /var/www/app.example.com/html;
    index index.html;

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

Habilite el sitio:

sudo ln -sf /etc/nginx/sites-available/app.example.com.conf /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx

Compruebe con el navegador o curl -I http://app.example.com.


6. HTTPS con Let’s Encrypt

sudo apt install -y certbot python3-certbot-nginx

Obtenga el certificado (ajuste correo y dominio):

sudo certbot --nginx -d app.example.com -m usted@example.com --agree-tos --non-interactive

Verifique la renovación:

sudo certbot renew --dry-run

La renovación suele gestionarla un timer de systemd o cron; consulte systemctl list-timers | grep certbot.


7. Buenas prácticas

  • Prefiera reload frente a restart tras cambios de configuración.
  • Registros por sitio si el tráfico es alto (access_log / error_log).
  • server_tokens off; si la política lo permite.
  • PHP o aplicaciones: fastcgi_pass a PHP-FPM o proxy_pass al upstream coherente.
  • Copia de seguridad de /etc/nginx/ antes de cambios grandes.

8. Resolución rápida de incidencias

Síntoma Qué revisar
502 Bad Gateway Aplicación no disponible; proxy_pass / fastcgi_pass incorrecto.
403 Forbidden Permisos; ruta root; SELinux/AppArmor.
Configuración rechazada sudo nginx -t y corrija las líneas indicadas.
Fallo al renovar el certificado DNS sigue apuntando aquí; puerto 80 accesible para HTTP-01.

9. Resumen

Ha instalado Nginx en Debian 12, abierto los puertos web, creado un virtual host y, opcionalmente, habilitado HTTPS con Certbot. En producción, refine registros, límites de peticiones y salud de los servicios de fondo.


Temas relacionados

  • Búsqueda en la base de conocimiento Boxis: /{lang}/knowledgebase/search/
  • Alojamiento y DNS: categoría Alojamiento y dominios cuando esté disponible.

Guía orientativa; los comandos pueden variar según la imagen y las personalizaciones.

Was this article helpful?
Views: 3