Clone
2
Reverse Proxy
SPP User edited this page 2026-11-01 22:12:42 +01:00
Table of Contents
Reverse-Proxy
Die Webseite lässt sich hinter einen Reverse-Proxy wie nginx, Caddy oder Traefik stellen, etwa um sie per HTTPS unter einer eigenen Adresse anzubieten.
- Eigene (Sub-)Domain, kein Unterpfad. Die Anwendung nutzt absolute Pfade (
/api,/socket.io,/stream,/admin). Unter einem Unterpfad wieexample.de/veto/funktioniert sie nicht. Nimm eine eigene Subdomain, z. B.veto.example.de. - WebSockets durchreichen. Die Live-Updates laufen über Socket.IO. Der Proxy muss den
Upgrade-Header weitergeben, sonst bleibt die Seite bei „Verbinde mit Lobby“ hängen. .envanpassen:PUBLIC_URL=https://veto.example.de, damit Einladungs- und Stream-Links stimmenTRUST_PROXY=true, damit die Begrenzung der Anmeldeversuche die echte Client-IP sieht und nicht die des Proxys
- Nicht über den Proxy:
- Die CS2-Spielverbindungen laufen per UDP direkt zum Docker-Host. Für Spieler aus dem Internet braucht es dort Portfreigaben und einen GSLT (
CS2_GSLT). - Die Logs der CS2-Server können weiter über das LAN kommen.
LOG_RECEIVER_URLbleibt dann z. B.http://192.168.178.31:3000.
- Die CS2-Spielverbindungen laufen per UDP direkt zum Docker-Host. Für Spieler aus dem Internet braucht es dort Portfreigaben und einen GSLT (
- Vor dem Freigeben absichern: Öffentlich erreichbar sind dann auch
/adminund, ohne Schlüssel, Stream-Übersicht und Beamer-Diashow. Setze ein starkesADMIN_PASSWORDund einenSTREAM_KEY. Organisatoren bekommen nur einen Schlüssel für ihr eigenes Match, nicht den globalen. - Datenschutz: Die Seite setzt keine Cookies und lädt nichts von fremden Servern, auch die Schriften liefert sie selbst aus. Ein Cookie-Banner braucht es nicht. Öffentlich erreichbar braucht sie aber Impressum und Datenschutzerklärung, z. B. als Link auf die von maxlan.de. Siehe Sicherheit.
Beispiel für nginx:
server {
listen 443 ssl http2;
server_name veto.example.de;
ssl_certificate /etc/letsencrypt/live/veto.example.de/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/veto.example.de/privkey.pem;
location / {
proxy_pass http://192.168.178.31:3000;
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;
proxy_read_timeout 1h;
}
}
Ein 502 Bad Gateway vom Proxy heißt, dass er die Anwendung unter proxy_pass nicht erreicht: Sie läuft nicht, oder Adresse bzw. Port stimmen nicht.