Despliegue con NGINX
NGINX proporciona una entrega de archivos estáticos de alto rendimiento para las compilaciones de docmd.
Generación del manifiesto
Genera un archivo nginx.conf preconfigurado adaptado a los ajustes de tu proyecto:
npx @docmd/core deploy --nginx
La configuración generada incluye:
server_name: Extraído de la propiedadurlendocmd.config.json(por defectolocalhost).- Reserva SPA: Incluye
try_files $uri $uri/ /index.html;condicionalmente cuandolayout.spa: true. - Seguridad y compresión: Configura compresión GZIP y cabeceras de seguridad (
X-Content-Type-Options,X-Frame-Options).
Estructura de la configuración
nginx.conf
server {
listen 80;
server_name docs.example.com;
root /usr/share/nginx/html;
index index.html;
# Cabeceras de seguridad
server_tokens off;
add_header X-Content-Type-Options "nosniff" always;
add_header X-Frame-Options "SAMEORIGIN" always;
# Compresión GZIP
gzip on;
gzip_vary on;
gzip_min_length 256;
gzip_types text/plain text/css application/json application/javascript
text/xml application/xml application/xml+rss text/javascript
image/svg+xml;
# Reserva de enrutamiento SPA (condicional según layout.spa)
location / {
try_files $uri $uri/ /index.html;
}
# Controlador de 404 personalizado
error_page 404 /404.html;
# Almacenamiento en caché de recursos estáticos (6 meses, inmutable)
location ~* \.(?:ico|css|js|gif|jpe?g|png|webp|avif|woff2?|eot|ttf|otf|svg)$ {
expires 6M;
access_log off;
add_header Cache-Control "public, immutable";
}
}
Pasos de despliegue
- Compila el sitio:
npx @docmd/core build - Transfiere los recursos compilados (
site/) a la raíz web de tu servidor (por ejemplo,/var/www/html/o/usr/share/nginx/html/). - Copia
nginx.confa/etc/nginx/conf.d/default.conf. - Recarga NGINX:
sudo systemctl reload nginx
Regeneración
Al actualizar url o layout.spa en docmd.config.json, vuelve a ejecutar npx @docmd/core deploy --nginx --force para sincronizar los cambios de configuración.