Nginx es un servidor web y proxy inverso conocido por su alto rendimiento, estabilidad y bajo uso de recursos. Es utilizado por muchas de las mayores empresas de tecnología para servir contenido web a gran escala. Este artículo te guiará a través de los pasos necesarios para instalar y configurar Nginx en un servidor Linux.
Paso 1: Instalación de Nginx
Para Distribuciones Basadas en Debian (Ubuntu, Debian):
- Actualizar el Sistema:
sudo apt update
sudo apt upgrade
2. Instalar Nginx:
sudo apt install nginx
3. Iniciar y Habilitar Nginx:
sudo systemctl start nginx
sudo systemctl enable nginx
Para Distribuciones Basadas en Red Hat (CentOS, Fedora):
- Actualizar el Sistema:
sudo yum update
2. Instalar Nginx:
sudo yum install epel-release
sudo yum install nginx
3. Iniciar y Habilitar Nginx:
sudo systemctl start nginx
sudo systemctl enable nginx
Paso 2: Configuración Básica de Nginx
Estructura de Directorios de Nginx:
- /etc/nginx/: Directorio de configuración principal.
- /etc/nginx/nginx.conf: Archivo de configuración principal de Nginx.
- /etc/nginx/conf.d/: Directorio para archivos de configuración adicional.
- /etc/nginx/sites-available/: Directorio para archivos de configuración de sitios (no siempre presente por defecto).
- /etc/nginx/sites-enabled/: Directorio para enlaces simbólicos a sitios habilitados (no siempre presente por defecto).
- /var/www/: Directorio raíz para los archivos web.
Configuración de un Bloque de Servidor (Servidor Virtual):
- Crear un Archivo de Configuración de Sitio:
sudo nano /etc/nginx/sites-available/mi_sitio
2. Añadir la Configuración del Sitio:
server {
listen 80;
server_name mi_sitio.com www.mi_sitio.com;
root /var/www/mi_sitio;
index index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
error_page 404 /404.html;
location = /404.html {
internal;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
internal;
}
}
3. Crear el Directorio Raíz y un Archivo de Índice:
sudo mkdir -p /var/www/mi_sitio
sudo nano /var/www/mi_sitio/index.html
4. Añadir Contenido al Archivo de Índice:
<!DOCTYPE html>
<html>
<head>
<title>Bienvenido a mi_sitio</title>
</head>
<body>
<h1>¡Funciona!</h1>
</body>
</html>
5. Habilitar el Sitio Creando un Enlace Simbólico:
sudo ln -s /etc/nginx/sites-available/mi_sitio /etc/nginx/sites-enabled/
6. Probar la Configuración y Recargar Nginx:
sudo nginx -t
sudo systemctl reload nginx
Paso 3: Configuración Adicional
Configurar HTTPS con Let’s Encrypt:
- Instalar Certbot: Para distribuciones basadas en Debian:
sudo apt install certbot python3-certbot-nginx
Para distribuciones basadas en Red Hat:
sudo yum install certbot python3-certbot-nginx
2. Obtener un Certificado SSL:
sudo certbot --nginx -d mi_sitio.com -d www.mi_sitio.com
3. Renovar Certificados Automáticamente:
Certbot instala automáticamente un cron job para renovar los certificados. Puedes verificarlo con:
sudo systemctl status certbot.timer
Paso 4: Monitorización y Mantenimiento
Monitorizar el Rendimiento de Nginx:
- Acceder a los Logs:
- Acceso:
/var/log/nginx/access.log
- Errores:
/var/log/nginx/error.log
- Acceso:
- Herramientas de Monitorización:
- Munin: Monitorea el rendimiento del servidor.
- Grafana: Visualiza métricas de rendimiento.
Actualizar Nginx:
Mantén Nginx actualizado para aprovechar las últimas características y correcciones de seguridad:
sudo apt update && sudo apt upgrade nginx # Para Debian/Ubuntu
sudo yum update nginx # Para CentOS/Fedora
Conclusión
Nginx es una herramienta poderosa y flexible para servir contenido web. Su configuración inicial es sencilla y ofrece un rendimiento excelente incluso bajo alta carga. Al seguir estos pasos, puedes instalar y configurar Nginx para servir tus sitios web de manera segura y eficiente. Asegúrate de mantener tu servidor actualizado y monitorizado para garantizar un funcionamiento continuo y seguro.