3.2 KiB
3.2 KiB
Xtream Player - Nginx Setup Guide
Problem Fixed
Když jste provozovali aplikaci přes nginx, video přehrávač nefungoval. Problém byl v chybějících CORS (Cross-Origin Resource Sharing) headerech. Nyní jsme:
- ✅ Přidali CORS headers do Java backendu
- ✅ Přidali support pro OPTIONS preflight requests
- ✅ Vytvořili optimalizovanou nginx konfiguraci pro streamování videa
Spuštění s Docker Compose (Doporučeno)
Nejjednodušší způsob je spustit obě služby (backend + nginx) najednou:
docker-compose up -d
Aplikace pak bude dostupná na:
- Frontend s nginx: http://localhost/
- Backend přímo: http://localhost:8080/
Ruční Spuštění
1. Spusťte backend Java aplikaci:
./mvn clean package
java -jar target/xtream-player-1.0.0.jar
2. Spusťte nginx:
docker run -d \
-p 80:80 \
-v $(pwd)/deploy/nginx/nginx.conf:/etc/nginx/conf.d/default.conf:ro \
nginx:latest
Nebo s native nginx (Linux):
cp deploy/nginx/nginx.conf /etc/nginx/sites-available/xtream-player
sudo ln -s /etc/nginx/sites-available/xtream-player /etc/nginx/sites-enabled/
sudo systemctl reload nginx
HTTPS/SSL Setup
Pro bezpečné HTTPS připojení:
- Vytvořte SSL certifikáty:
mkdir -p deploy/nginx/ssl
# Použijte Let's Encrypt, self-signed certs, nebo váš certifikát
- Upravte
deploy/nginx/nginx.conf:
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
ssl_certificate /etc/nginx/ssl/cert.pem;
ssl_certificate_key /etc/nginx/ssl/key.pem;
# ... rest of config
}
# Redirect HTTP to HTTPS
server {
listen 80;
return 301 https://$server_name$request_uri;
}
- Aktualizujte docker-compose.yml pro SSL volume
Troubleshooting
Video přehrávač stále nefunguje?
-
Zkontrolujte browser console (F12 → Console):
- Hledejte CORS errory
- Hledejte "stream-proxy" errory
-
Zkontrolujte nginx logs:
docker logs <nginx_container_id>
# nebo
sudo tail -f /var/log/nginx/error.log
- Zkontrolujte backend logs:
docker logs <xtream-player_container_id>
# nebo koukejte na console kde jste spustili Java
Nginx vrací 502 Bad Gateway?
- Ujistěte se, že backend je spuštěný na portu 8080
- Zkontrolujte, že nginx má přístup k backendu (network settings)
- Zkontrolujte nginx logs pro konkrétní chybu
Velké soubory se neloadují?
- V nginx.conf je
client_max_body_size 256M;- zvyšte v případě potřeby - Ujistěte se, že
proxy_buffering off;je nastaveno pro/api/stream-proxy
Architektura
Klient (browser)
↓
Nginx (reverse proxy, CORS headers)
↓
Java aplikace (8080)
├─ /api/... (API endpoints s CORS)
├─ /api/stream-proxy (HLS stream proxy)
└─ / (static HTML/CSS/JS)
CORS Headers
Nyní jsou automaticky přidávány všem odpovědím:
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS
Access-Control-Allow-Headers: Content-Type, Authorization, X-Requested-With
Access-Control-Max-Age: 86400
Pokud potřebujete omezit origin (bezpečnější), měňte Access-Control-Allow-Origin v kódu.