# ============================================== # Nginx Konfiguration fuer Unity WebGL # ============================================== # Optimiert fuer grosse WASM-Dateien und # korrektes CORS fuer API-Aufrufe server { listen 80; server_name localhost; root /usr/share/nginx/html; index index.html; # Standard MIME-Types einbinden + WebGL-spezifische hinzufuegen include /etc/nginx/mime.types; # WebGL-spezifische MIME-Types (zusaetzlich) types { application/wasm wasm; } # Gzip Kompression fuer grosse Dateien gzip on; gzip_vary on; gzip_proxied any; gzip_comp_level 6; gzip_types application/javascript application/wasm application/json text/plain text/css text/html; gzip_min_length 1000; # Brotli-komprimierte Unity-Dateien (falls vorhanden) location ~ \.br$ { gzip off; add_header Content-Encoding br; default_type application/octet-stream; } # Gzip-komprimierte Unity-Dateien location ~ \.gz$ { gzip off; add_header Content-Encoding gzip; default_type application/octet-stream; } # Caching fuer statische Assets (1 Jahr) location ~* \.(data|wasm|js|css|png|jpg|gif|ico|svg|woff|woff2)$ { expires 1y; add_header Cache-Control "public, immutable"; add_header Access-Control-Allow-Origin "*"; } # Health-Check Endpunkt location = /health { default_type application/json; alias /usr/share/nginx/html/health.json; } location = /health.json { access_log off; default_type application/json; } # SPA Routing - alle Requests auf index.html location / { # CORS Headers add_header Access-Control-Allow-Origin "*" always; add_header Access-Control-Allow-Methods "GET, POST, OPTIONS" always; add_header Access-Control-Allow-Headers "Content-Type, Authorization" always; try_files $uri $uri/ /index.html; } }