Spaces:
Running
Running
| # nginx.conf β Reverse proxy devant Streamlit pour HF Spaces | |
| # | |
| # RΓ΄le : | |
| # - Γcoute sur le port public 7860 (requis par HF Spaces) | |
| # - Proxie vers Streamlit sur le port interne 7861 | |
| # - Supprime X-Frame-Options pour autoriser l'embedding dans l'iframe HF Spaces | |
| # - Ajoute Content-Security-Policy: frame-ancestors * pour les navigateurs modernes | |
| # | |
| # Non-root : tous les fichiers temporaires pointent vers /tmp (accessible Γ UID 1000) | |
| worker_processes 1; | |
| pid /tmp/nginx.pid; | |
| error_log /tmp/nginx_error.log warn; | |
| daemon off; | |
| events { | |
| worker_connections 1024; | |
| } | |
| http { | |
| access_log off; | |
| # Chemins temporaires accessibles Γ l'utilisateur non-root (UID 1000) | |
| client_body_temp_path /tmp/nginx_client_body; | |
| proxy_temp_path /tmp/nginx_proxy; | |
| fastcgi_temp_path /tmp/nginx_fastcgi; | |
| uwsgi_temp_path /tmp/nginx_uwsgi; | |
| scgi_temp_path /tmp/nginx_scgi; | |
| server { | |
| listen 7860; | |
| # ββ WebSocket Streamlit (/_stcore/stream) ββββββββββββββββββββββββββ | |
| location /_stcore/stream { | |
| proxy_pass http://127.0.0.1:7861; | |
| proxy_http_version 1.1; | |
| proxy_set_header Upgrade $http_upgrade; | |
| proxy_set_header Connection "Upgrade"; | |
| proxy_set_header Host $host; | |
| proxy_read_timeout 86400s; | |
| proxy_send_timeout 86400s; | |
| } | |
| # ββ Toutes les autres requΓͺtes HTTP ββββββββββββββββββββββββββββββββ | |
| location / { | |
| proxy_pass http://127.0.0.1:7861; | |
| proxy_http_version 1.1; | |
| proxy_set_header Upgrade $http_upgrade; | |
| proxy_set_header Connection "upgrade"; | |
| proxy_set_header Host $host; | |
| proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; | |
| proxy_set_header X-Forwarded-Proto $scheme; | |
| # Autoriser l'iframe depuis n'importe quelle origine (HF Spaces) | |
| proxy_hide_header X-Frame-Options; | |
| add_header Content-Security-Policy "frame-ancestors *" always; | |
| } | |
| } | |
| } | |