Una de las tareas más comunes en la administración de servidores y despliegue de aplicaciones web es la de configurar un servidor HTTP para alojar nuestros proyectos. Empleando Nginx en un sistema basado en Debian es posible lograrlo de forma rápida y eficiente.
El propósito es crear paso a paso la configuración de un nuevo sitio web y dejarlo listo para atender peticiones.
Primero debemos asegurarnos de tener instalado Nginx en nuestro sistema. Para ello ejecutamos los comandos de actualización e instalación en la terminal:
sudo apt update
sudo apt install nginx -y
El propósito de este comando es la de descargar e instalar el servidor web junto con sus dependencias básicas.
Para ello vamos a crear el directorio donde se alojarán los archivos de nuestro nuevo sitio web (reemplaza tu-sitio.com por el nombre de tu dominio):
sudo mkdir -p /var/www/tu-sitio.com/html
Enseguida definimos el contenido básico del archivo HTML:
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Bienvenido a tu-sitio.com</title>
</head>
<body>
<h1>¡Felicidades! El sitio en Nginx está funcionando correctamente.</h1>
</body>
</html>
Ahora necesitamos indicarle a Nginx cómo debe responder cuando alguien busque nuestro dominio. Para ello, crearemos un archivo de configuración en el bloque de sitios disponibles:
sudo nano /etc/nginx/sites-available/tu-sitio.com
Dentro de este archivo vamos a agregar la declaración del bloque server que atenderá el puerto 80:
server {
listen 80;
listen [::]:80;
root /var/www/tu-sitio.com/html;
index index.html;
server_name tu-sitio.com www.tu-sitio.com;
location / {
try_files $uri $uri/ =404;
}
}
La configuración usa la directiva root para apuntar a la ruta del archivo index.html que acabamos de crear, en caso de que una petición busque un archivo inexistente este se ve atrapado lanzando un error 404. En caso de que la petición sea exitosa el resultado se pasa directamente al navegador del usuario.
Para activar el sitio, es necesario crear un enlace simbólico que conecte nuestro archivo con el bloque de sitios habilitados de Nginx:
sudo ln -s /etc/nginx/sites-available/tu-sitio.com /etc/nginx/sites-enabled/
Con ello el servidor ya sabe qué carpetas y dominios debe leer. Para evitar fallos tipográficos o de sintaxis, validamos la configuración con la declaración siguiente:
sudo nginx -t
Si la terminal nos devuelve que la sintaxis es correcta, procedemos a reiniciar el servicio para aplicar los cambios de forma definitiva:
sudo systemctl restart nginx
El flujo completo se ve así en la terminal:
# 1. Actualizar e instalar Nginx
sudo apt update && sudo apt install nginx -y
# 2. Crear el directorio del sitio
sudo mkdir -p /var/www/tu-sitio.com/html
# 3. Asignar los permisos correctos al directorio
sudo chown -R $USER:$USER /var/www/tu-sitio.com/html
sudo chmod -R 755 /var/www/tu-sitio.com
# 4. Crear el enlace simbólico de activación
sudo ln -s /etc/nginx/sites-available/tu-sitio.com /etc/nginx/sites-enabled/
# 5. Comprobar configuración y reiniciar el servicio
sudo nginx -t
sudo systemctl restart nginx
Para ver el ejemplo funcionando abre tu navegador web favorito e ingresa la dirección de tu dominio o la IP local de tu servidor.
Espero que te haya sido de ayuda este artículo :)
Comentarios