📚 Documentación Técnica
Guía de Despliegue y Comandos en Nginx
Sigue estos pasos en tu servidor Linux (Ubuntu/Debian/CentOS) o contenedor Docker para desplegar este proyecto.
1️⃣ Preparar Directorio y Permisos
Terminal Linux
Crea el directorio raíz en /var/www/proyecto1, copia el contenido de esta carpeta y asigna permisos adecuados al usuario de Nginx (www-data o nginx):
bash
sudo mkdir -p /var/www/proyecto1
# Copia los archivos del proyecto a /var/www/proyecto1
sudo cp -r * /var/www/proyecto1/
# Asignar propietario y permisos seguros
sudo chown -R www-data:www-data /var/www/proyecto1
sudo find /var/www/proyecto1 -type d -exec chmod 755 {} \;
sudo find /var/www/proyecto1 -type f -exec chmod 644 {} \;
2️⃣ Activar el Virtual Host (Server Block)
Nginx Config
Puedes usar el archivo incluido en nginx/nginx.conf.example para crear tu sitio en sites-available y enlazarlo a sites-enabled:
bash
sudo cp /var/www/proyecto1/nginx/nginx.conf.example /etc/nginx/sites-available/proyecto1 # Crear enlace simbólico para habilitar el sitio sudo ln -s /etc/nginx/sites-available/proyecto1 /etc/nginx/sites-enabled/ # Probar sintaxis de configuración y recargar sudo nginx -t sudo systemctl reload nginx
🔍 Mapa de Archivos del Proyecto y Qué Practicar con Cada Uno
Arquitectura
| Ruta en el Proyecto | Tipo MIME Esperado | Directiva Nginx que pone a prueba | Comportamiento esperado |
|---|---|---|---|
| /index.html | text/html; charset=utf-8 | root /var/www/proyecto1; index index.html; | Carga el panel principal al acceder a http://tu-ip/. |
| /docs/index.html | text/html | try_files $uri $uri/ =404; | Permite entrar tanto con /docs/ como con /docs. |
| /assets/css/styles.css | text/css | expires 30d; gzip on; | Devuelve cabecera Cache-Control: public, max-age=2592000. |
| /api/health.json | application/json | location /api/ { add_header Cache-Control "no-store"; } | Sirve estado JSON sin guardar en caché del navegador. |
| /404.html & /50x.html | text/html | error_page 404 /404.html; internal; | Muestra páginas personalizadas y bloquea acceso directo a /50x.html si tiene internal;. |