worker_processes 1; events { worker_connections 1024; } error_log nginx_main_error.log info; pid nginx_user.pid; daemon off; http { access_log nginx_access.log; error_log nginx_error.log info; types { text/html html htm shtml; text/css css; application/javascript js; application/wasm wasm; image/png png; image/jpeg jpg jpeg; image/svg+xml svg; } default_type application/octet-stream; sendfile on; server { # listen 8080 ssl; listen 8081; server_name localhost; gzip on; # Enable compression for .wasm, .js and .txt files (used for the runtime chunks) gzip_types application/javascript application/wasm text/plain application/octet-stream; charset utf-8; # ssl_certificate nginx.crt; # ssl_certificate_key nginx.key; location / { root build; autoindex on; index index.html index.htm; add_header 'Cross-Origin-Opener-Policy' 'same-origin' always; add_header 'Cross-Origin-Embedder-Policy' 'require-corp' always; add_header 'Cross-Origin-Resource-Policy' 'cross-origin' always; } add_header Content-Security-Policy " script-src 'self', 'wasm-unsafe-eval'; script-src-elem 'self'; worker-src 'self', 'wasm-unsafe-eval', blob:'; connect-src 'self', 'https:', 'blob:', 'data:', 'wss:'; require-trusted-types-for 'script'; frame-src 'self', 'https:', 'blob:', 'data:'; img-src 'self', 'https:', 'blob:', 'data:'; media-src 'self', 'https:', 'blob:', 'data:'; font-src 'self', 'blob:', 'data:'; style-src 'self', 'unsafe-inline'; object-src 'none'; base-uri 'none'; default-src 'self'; frame-ancestors 'self'; " always; } }