Reverse proxy
Publica SwissKnife por HTTPS sin eliminar las cabeceras que necesita FFmpeg WASM.
SwissKnife no tiene autenticación. La función principal de un reverse proxy es terminar TLS. El requisito crítico no es una cookie, sino SharedArrayBuffer, que necesita FFmpeg WASM.
El nginx.conf del producto envía estas cabeceras:
Cross-Origin-Opener-Policy: same-originCross-Origin-Embedder-Policy: require-corpCross-Origin-Resource-Policy: same-origin
Si el proxy las elimina o sustituye, el motor de audio y vídeo no podrá cargarse. Las conversiones de imágenes con Canvas pueden seguir funcionando.
Los ejemplos utilizan swissknife.example.com y 127.0.0.1:2501. Adapta el nombre del host; cambia el puerto solo si el mapeo del host ya no es 2501.
Restringir la escucha de Docker
Para aceptar tráfico únicamente desde un proxy en el mismo host:
services:
swissknife:
ports:
- "127.0.0.1:2501:2501"Caddy en el host
swissknife.example.com {
encode zstd gzip
reverse_proxy 127.0.0.1:2501
}Caddy suele reenviar las cabeceras de respuesta del upstream. Comprueba en las herramientas de desarrollo del navegador que COOP y COEP siguen presentes en / y /ffmpeg/ffmpeg-core.wasm.
Nginx en el host
server {
listen 443 ssl http2;
server_name swissknife.example.com;
ssl_certificate /etc/letsencrypt/live/swissknife.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/swissknife.example.com/privkey.pem;
location / {
proxy_pass http://127.0.0.1:2501;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_hide_header Cross-Origin-Opener-Policy;
proxy_hide_header Cross-Origin-Embedder-Policy;
proxy_hide_header Cross-Origin-Resource-Policy;
add_header Cross-Origin-Opener-Policy "same-origin" always;
add_header Cross-Origin-Embedder-Policy "require-corp" always;
add_header Cross-Origin-Resource-Policy "same-origin" always;
}
}Cuando Nginx redefine cabeceras de respuesta, no siempre conserva los valores add_header del upstream. El bloque anterior los establece de forma explícita. Prueba la configuración antes de recargarla.
No actives COEP en la documentación
Esta documentación y el sitio de presentación no necesitan require-corp. No copies estas cabeceras fuera de la aplicación de conversión.