fixed streaming

This commit is contained in:
Radek Davidek 2026-03-10 15:59:08 +01:00
parent 22d0e0dfd0
commit 57eab42b42
2 changed files with 10 additions and 52 deletions

View File

@ -9,9 +9,8 @@ server {
# Limit request sizes to prevent abuse # Limit request sizes to prevent abuse
client_max_body_size 256M; client_max_body_size 256M;
# Root location - serve static files and proxy to backend # Single location for all requests
location / { location / {
# Try to serve static files first, then proxy to backend
proxy_pass http://xtream_backend; proxy_pass http://xtream_backend;
proxy_http_version 1.1; proxy_http_version 1.1;
@ -21,69 +20,26 @@ server {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-Proto $scheme;
# Explicitly pass Authorization header
proxy_set_header Authorization $http_authorization;
proxy_pass_request_headers on;
# WebSocket support (if needed) # WebSocket support (if needed)
proxy_set_header Upgrade $http_upgrade; proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade"; proxy_set_header Connection "upgrade";
# Timeouts for long-running requests (streaming) # Timeouts for long-running requests (streaming)
proxy_connect_timeout 60s; proxy_connect_timeout 60s;
proxy_send_timeout 60s; proxy_send_timeout 3600s;
proxy_read_timeout 3600s; proxy_read_timeout 3600s;
# Buffering for streaming # Disable buffering for streaming
proxy_buffering off;
proxy_request_buffering off;
}
# API endpoints with special handling
location /api/ {
proxy_pass http://xtream_backend;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Host $server_name;
# For preflight requests
proxy_set_header Access-Control-Allow-Origin *;
# Timeouts for streaming endpoints
proxy_connect_timeout 60s;
proxy_send_timeout 60s;
proxy_read_timeout 3600s;
# Disable buffering for stream proxying
proxy_buffering off;
proxy_request_buffering off;
}
# Stream proxy endpoint - special handling for media streams
location /api/stream-proxy {
proxy_pass http://xtream_backend;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
# Important: disable buffering for media streaming
proxy_buffering off; proxy_buffering off;
proxy_request_buffering off; proxy_request_buffering off;
# Allow range requests for seeking # Allow range requests for seeking
proxy_set_header Range $http_range; proxy_set_header Range $http_range;
proxy_set_header If-Range $http_if_range; proxy_set_header If-Range $http_if_range;
# Long timeout for streaming
proxy_connect_timeout 60s;
proxy_send_timeout 3600s;
proxy_read_timeout 3600s;
# Pass through the 206 Partial Content status
proxy_pass_request_headers on;
} }
# Health check endpoint # Health check endpoint

View File

@ -2541,7 +2541,9 @@
const pageIsHttps = window.location.protocol === "https:"; const pageIsHttps = window.location.protocol === "https:";
const target = new URL(url, window.location.href); const target = new URL(url, window.location.href);
if (pageIsHttps && target.protocol === "http:") { if (pageIsHttps && target.protocol === "http:") {
return `/api/stream-proxy?url=${encodeURIComponent(target.toString())}`; const authToken = getAuthToken();
const tokenParam = authToken ? `&token=${encodeURIComponent(authToken)}` : "";
return `/api/stream-proxy?url=${encodeURIComponent(target.toString())}${tokenParam}`;
} }
} catch (error) { } catch (error) {
return url; return url;