Instale la última versión de Nginx¶
Aunque los repositorios predeterminados de Debian proporcionan una versión estable de Nginx, el uso del repositorio oficial de Nginx garantiza el acceso a las últimas funciones, actualizaciones de seguridad y mejoras de rendimiento tan pronto como se publican. Esta guía explica cómo instalar y configurar Nginx directamente desde el repositorio oficial en Debian 12 (Bookworm), lo que ayudará a mantener una configuración de servidor web moderna y segura.
Prerequisitos¶
Acceso root a un sistema Debian 12
Conocimientos básicos de la línea de comandos de Linux
Editor de texto de su elección
Pasos para la instalación¶
1. Actualizar los paquetes del sistema¶
En primer lugar, actualice la lista de paquetes de su sistema e instale las nuevas versiones si las hubiere:
apt update && apt upgrade -y
2. Instale las dependencias necesarias¶
Instale los paquetes necesarios para añadir el repositorio Nginx:
apt install curl wget gnupg2 ca-certificates lsb-release -y
3. Agregue el repositorio oficial de Nginx¶
Importe la clave de firma de Nginx y verifíquela:
wget -O- https://nginx.org/keys/nginx_signing.key | gpg --dearmor -o /etc/apt/trusted.gpg.d/nginx.gpg
gpg --dry-run --quiet --import --import-options import-show /etc/apt/trusted.gpg.d/nginx.gpg
Agregue el repositorio oficial de Nginx:
echo "deb http://nginx.org/packages/debian` lsb\_release -cs `nginx" > /etc/apt/sources.list.d/nginx.list
4. Establecer prioridad del repositorio¶
Cree un archivo de preferencias para asegurarse de que los paquetes se descarguen del repositorio Nginx.
echo -e "Package: *\nPin: origin nginx.org\nPin: release o=nginx\nPin-Priority: 900\n" | sudo tee /etc/apt/preferences.d/99nginx
5. Instalar Nginx¶
Actualice la lista de paquetes e instale Nginx:
apt update
apt install nginx -y
6. Verificar la instalación¶
Verifique la versión de Nginx instalada:
nginx -v
7. Configurar los directorios del sistema¶
Cree los directorios necesarios con los permisos adecuados:
mkdir -p -m 0755 /var/www/html
chown -R www-data:www-data /var/www/html
mkdir /etc/nginx/{modules-available,modules-enabled,sites-available,sites-enabled,snippets}
8. Configurar encabezados de seguridad¶
Cree un fragmento de código para la configuración de los encabezados de seguridad:
cat > /etc/nginx/snippets/security-headers.conf << EOF
add_header X-Frame-Options "SAMEORIGIN";
add_header 'Referrer-Policy' 'strict-origin';
add_header X-XSS-Protection "1; mode=block";
add_header X-Content-Type-Options "nosniff" always;
add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload";
add_header Content-Security-Policy "default-src https: data: 'unsafe-inline' 'unsafe-eval'" always;
add_header Permissions-Policy "accelerometer=(), camera=(), geolocation=(), gyroscope=(), magnetometer=(), microphone=(), payment=(), usb=()";
EOF
9. Definir la configuración principal de Nginx¶
Crear una configuración base segura:
cat > /etc/nginx/nginx.conf <<EOF
user www-data;
worker_processes auto;
pid /var/run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;
events {
worker_connections 1024;
}
http {
sendfile on;
tcp_nopush on;
tcp_nodelay on;
types_hash_max_size 2048;
include snippets/security-headers.conf;
server_tokens off;
include /etc/nginx/mime.types;
default_type application/octet-stream;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
gzip on;
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
}
EOF
10. Configurar el reinicio automático¶
Configure el reinicio automático de Nginx en caso de fallos:
mkdir -p /etc/systemd/system/nginx.service.d/
echo -e "[Service]\nRestart=always\nRestartSec=10s" > /etc/systemd/system/nginx.service.d/restart.conf
systemctl daemon-reload
11. Probar e iniciar Nginx¶
Pruebe la configuración e inicie el servicio:
nginx -t
systemctl enable nginx
systemctl start nginx
12. Verificar la instalación¶
Compruebe si Nginx funciona correctamente:
systemctl status nginx
curl http://127.0.0.1
Solución de problemas¶
Si recibe un error 403 Forbidden al acceder a la página predeterminada, compruebe:
Los permisos del directorio para
/var/www/htmlLa configuración de SELinux, si está habilitada
Los permisos de usuario de Nginx
Gestión del servicio¶
Comandos comunes de administración de servicios:
systemctl start nginx # Start Nginx
systemctl stop nginx # Stop Nginx
systemctl restart nginx # Restart Nginx
systemctl status nginx # Check status
nginx -t # Test configuration
Consideraciones de seguridad¶
Esta configuración incluye:
Configuración SSL/TLS moderna
Encabezados de seguridad para la protección contra vulnerabilidades web comunes
Tokens de servidor desactivados para evitar la filtración de información sobre la versión
Capacidad de reinicio automático para una mayor confiabilidad
Siguientes pasos¶
Este tutorial ha cubierto la instalación y configuración básicas de Nginx utilizando el repositorio oficial. Para configuraciones más avanzadas, consulte los tutoriales relacionados:
Cada uno de estos temas se tratará en detalle en artículos separados, lo que le ayudará a crear una infraestructura de servidor web robusta y segura.
Recuerde actualizar periódicamente su instalación de Nginx y supervisar los registros para detectar cualquier problema.