Introducción
Nginx (pronunciado "engine-x") es un servidor web de alto rendimiento, proxy inverso y balanceador de carga. Es conocido por su bajo consumo de memoria y su capacidad para manejar un gran número de conexiones simultáneas, lo que lo convierte en uno de los servidores web más populares del mundo.
Requisitos previos
- Un VPS Linux con Ubuntu 22.04/24.04 o Debian 12 (las instrucciones son similares para otras distribuciones)
- Acceso root o sudo
- Un nombre de dominio apuntando a su servidor (opcional, para hosts virtuales)
Paso 1: Instalar Nginx
sudo apt update
sudo apt install nginx -y
Verifique la instalación:
nginx -v
Paso 2: Iniciar y habilitar Nginx
sudo systemctl start nginx
sudo systemctl enable nginx
Verifique el estado:
sudo systemctl status nginx
Abra su navegador y navegue a http://ip-de-su-servidor. Debería ver la página de bienvenida predeterminada de Nginx.
Paso 3: Permitir Nginx a través del firewall
Si UFW está habilitado:
sudo ufw allow 'Nginx Full'
Esto permite tráfico HTTP (80) y HTTPS (443).
Paso 4: Estructura de directorios
| Ruta | Propósito |
|---|---|
/etc/nginx/nginx.conf |
Archivo de configuración principal |
/etc/nginx/sites-available/ |
Archivos de configuración de hosts virtuales |
/etc/nginx/sites-enabled/ |
Enlaces simbólicos a hosts virtuales activos |
/var/www/html/ |
Directorio raíz web predeterminado |
/var/log/nginx/access.log |
Registro de accesos |
/var/log/nginx/error.log |
Registro de errores |
Paso 5: Crear un host virtual (server block)
Cree un nuevo archivo de configuración para su dominio:
sudo nano /etc/nginx/sites-available/sudominio.com
Agregue la siguiente configuración:
server {
listen 80;
listen [::]:80;
server_name sudominio.com www.sudominio.com;
root /var/www/sudominio.com;
index index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
access_log /var/log/nginx/sudominio.com.access.log;
error_log /var/log/nginx/sudominio.com.error.log;
}
Paso 6: Configurar el directorio raíz web
sudo mkdir -p /var/www/sudominio.com
sudo chown -R www-data:www-data /var/www/sudominio.com
Cree una página de prueba:
echo "<h1>Hola desde sudominio.com</h1>" | sudo tee /var/www/sudominio.com/index.html
Paso 7: Habilitar el host virtual
sudo ln -s /etc/nginx/sites-available/sudominio.com /etc/nginx/sites-enabled/
Pruebe la configuración en busca de errores de sintaxis:
sudo nginx -t
Si la prueba es exitosa, recargue Nginx:
sudo systemctl reload nginx
Paso 8: Habilitar HTTPS con Let's Encrypt
Instale Certbot:
sudo apt install certbot python3-certbot-nginx -y
Obtenga e instale un certificado:
sudo certbot --nginx -d sudominio.com -d www.sudominio.com
Certbot modificará automáticamente su configuración de Nginx para usar HTTPS y configurará la renovación automática.
Verifique que la renovación automática esté configurada:
sudo certbot renew --dry-run
Comandos útiles de Nginx
| Comando | Descripción |
|---|---|
sudo systemctl restart nginx |
Reiniciar Nginx |
sudo systemctl reload nginx |
Recargar configuración sin tiempo de inactividad |
sudo nginx -t |
Probar la configuración en busca de errores |
sudo tail -f /var/log/nginx/error.log |
Monitorear el registro de errores en tiempo real |