server { listen 80; server_name localhost; root /usr/share/nginx/html; index index.html; # Compresión para HTML/CSS/JS # text/html ya está incluido por defecto en nginx, no repetir gzip on; gzip_types text/css application/javascript application/json image/svg+xml; gzip_min_length 256; # Cacheo para assets estáticos (feria local) location ~* \.(png|jpg|jpeg|gif|svg|ico|webp)$ { expires 7d; add_header Cache-Control "public, immutable"; } # Descargas: forzar descarga en lugar de abrir en navegador location /downloads/ { add_header Content-Disposition "attachment"; sendfile on; tcp_nopush on; } # Rutas limpias location / { try_files $uri $uri/ $uri.html =404; } # Página 404 personalizada error_page 404 /404.html; }