NGINX, Servidores y la Web
Contexto: Vamos a servir nuestro sitio web / aplicación ! (ahora que Juanan ya tiene listo el menú de su Restaurante a publicar… 🤣 ) Para hacerlo, vamos usar nuestro servidor y nuestro nombre internet (DNS) de pruebas 🎯 Podríamos acceder a él via el clásico protocolo de transferencia de archivos FTP 🌎.Alehop! O via el protocolo SSH y/o usar también ‘git’.
Sea como fuere, una vez situados los ficheros en el disco del servidor (típicamente llamado VPS - ‘Virtual Private Server’ ) en Internet. Y en él, configurar nuestro software/servidor Web (habitualmente ‘Apache2 o Nginx).
Recuerda : la ’nube’, como tal, es jerga de los departamentos de marketing de grandes corporaciones tecnológicas. Son los PC de otros ! XD
Guía: Configuración de Subdominios en Nginx
Escenario
| Subdominio | Document Root |
|---|---|
zen1.qu3v3d0.tech |
/var/www/zen1/ |
zen2.qu3v3d0.tech |
/var/www/zen2/ |
Paso 1: Configurar DNS (en Gandi)
En el panel de tu proveedor DNS (Gandi), añade dos registros tipo A:
| Tipo | Nombre | Valor (IP) | TTL |
|---|---|---|---|
| A | zen1 |
161.22.44.104 |
300 |
| A | zen2 |
161.22.44.104 |
300 |
Espera unos minutos a que propaguen (puedes verificar con
host zen1.qu3v3d0.tech)
Paso 2: Crear contenido de prueba (opcional)
# Para zen1 (ya tiene contenido)
echo "<h1>Bienvenido a ZEN1</h1>" > /var/www/zen1/index.html
# Para zen2
echo "<h1>Bienvenido a ZEN2</h1>" > /var/www/zen2/index.html
Paso 3: Crear configuración Nginx para cada subdominio
3.1 Configuración para zen1
sudo nano /etc/nginx/sites-available/zen1.qu3v3d0.tech
Contenido:
server {
listen 80;
server_name zen1.qu3v3d0.tech;
root /var/www/zen1;
index index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
# Logs específicos (opcional)
access_log /var/log/nginx/zen1.access.log;
error_log /var/log/nginx/zen1.error.log;
}
3.2 Configuración para zen2
sudo nano /etc/nginx/sites-available/zen2.qu3v3d0.tech
Contenido:
server {
listen 80;
server_name zen2.qu3v3d0.tech;
root /var/www/zen2;
index index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
access_log /var/log/nginx/zen2.access.log;
error_log /var/log/nginx/zen2.error.log;
}
Paso 4: Habilitar los sitios (crear symlinks)
sudo ln -s /etc/nginx/sites-available/zen1.qu3v3d0.tech /etc/nginx/sites-enabled/
sudo ln -s /etc/nginx/sites-available/zen2.qu3v3d0.tech /etc/nginx/sites-enabled/
Paso 5: Verificar configuración
sudo nginx -t
Salida esperada:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Paso 6: Recargar Nginx
sudo systemctl reload nginx
Paso 7: Verificar funcionamiento
# Desde local o cualquier máquina
curl -I http://zen1.qu3v3d0.tech
curl -I http://zen2.qu3v3d0.tech
O abre en el navegador:
Resumen de comandos (secuencia completa)
# Crear configuraciones
sudo nano /etc/nginx/sites-available/zen1.qu3v3d0.tech
sudo nano /etc/nginx/sites-available/zen2.qu3v3d0.tech
# Habilitar sitios
sudo ln -s /etc/nginx/sites-available/zen1.qu3v3d0.tech /etc/nginx/sites-enabled/
sudo ln -s /etc/nginx/sites-available/zen2.qu3v3d0.tech /etc/nginx/sites-enabled/
# Verificar y recargar
sudo nginx -t && sudo systemctl reload nginx