Refactor yourpart-https.conf for improved WebSocket and API request handling

- Consolidated WebSocket upgrade conditions for clarity and consistency.
- Streamlined API request forwarding configuration.
- Removed redundant proxy settings to enhance organization and maintainability of the configuration file.
This commit is contained in:
Torsten Schulz (local)
2026-01-14 10:28:23 +01:00
parent 84619fb656
commit 2bf949513b
2 changed files with 56 additions and 17 deletions

43
test-websocket-config.sh Executable file
View File

@@ -0,0 +1,43 @@
#!/bin/bash
echo "=== WebSocket-Konfiguration testen ==="
echo ""
# Prüfe Apache-Module
echo "1. Prüfe Apache-Module:"
REQUIRED_MODULES=("proxy" "proxy_http" "proxy_wstunnel" "rewrite" "ssl" "headers")
for module in "${REQUIRED_MODULES[@]}"; do
if apache2ctl -M 2>/dev/null | grep -q "${module}_module"; then
echo "$module ist aktiviert"
else
echo "$module ist NICHT aktiviert"
fi
done
echo ""
echo "2. Prüfe Apache-Konfiguration:"
if sudo apache2ctl configtest 2>&1 | grep -q "Syntax OK"; then
echo " ✅ Konfiguration ist gültig"
else
echo " ❌ Konfiguration hat Fehler:"
sudo apache2ctl configtest 2>&1
fi
echo ""
echo "3. Prüfe aktive VirtualHosts:"
apache2ctl -S 2>/dev/null | grep -E "(443|4443|4551)" || echo " Keine relevanten VirtualHosts gefunden"
echo ""
echo "4. Prüfe Apache-Logs (letzte 20 Zeilen):"
echo " Error-Log:"
sudo tail -20 /var/log/apache2/yourpart.error.log 2>/dev/null || echo " Keine Fehler gefunden"
echo ""
echo " Access-Log (letzte 10 Zeilen mit /ws/ oder /socket.io/):"
sudo tail -100 /var/log/apache2/yourpart.access.log 2>/dev/null | grep -E "(/ws/|/socket.io/)" | tail -10 || echo " Keine relevanten Einträge gefunden"
echo ""
echo "5. Teste WebSocket-Verbindungen:"
echo " Socket.io: wss://www.your-part.de/socket.io/"
echo " Daemon: wss://www.your-part.de/ws/"
echo ""
echo " Bitte im Browser testen und dann die Logs prüfen."

View File

@@ -24,31 +24,27 @@
RequestHeader set X-Forwarded-Proto "https"
AllowEncodedSlashes NoDecode
# WebSocket-Upgrade-Header (muss VOR ProxyPass stehen!)
RewriteEngine on
# WebSocket-Upgrade für Socket.io
RewriteCond %{HTTP:Upgrade} websocket [NC]
RewriteCond %{HTTP:Connection} upgrade [NC]
RewriteRule ^/socket.io/(.*)$ "ws://localhost:2020/socket.io/$1" [P,L]
# WebSocket-Upgrade für Daemon-Verbindungen
RewriteCond %{HTTP:Upgrade} websocket [NC]
RewriteCond %{HTTP:Connection} upgrade [NC]
RewriteRule ^/ws/(.*)$ "ws://localhost:4551/$1" [P,L]
# API-Requests an Backend weiterleiten
ProxyPass "/api/" "http://localhost:2020/api/"
ProxyPassReverse "/api/" "http://localhost:2020/api/"
# WebSocket-Upgrade mit RewriteRule (muss VOR ProxyPass stehen!)
RewriteEngine on
# WebSocket-Upgrade für Socket.io
RewriteCond %{HTTP:Upgrade} =websocket [NC]
RewriteCond %{HTTP:Connection} =upgrade [NC]
RewriteRule ^/socket.io/(.*)$ "ws://localhost:2020/socket.io/$1" [P,L]
# WebSocket-Upgrade für Daemon
RewriteCond %{HTTP:Upgrade} =websocket [NC]
RewriteCond %{HTTP:Connection} =upgrade [NC]
RewriteRule ^/ws/(.*)$ "ws://localhost:4551/$1" [P,L]
# HTTP-Proxy für Socket.io (Fallback für Polling)
ProxyPass "/socket.io/" "http://localhost:2020/socket.io/"
ProxyPassReverse "/socket.io/" "http://localhost:2020/socket.io/"
# HTTP-Proxy für Daemon (Fallback, falls WebSocket nicht funktioniert)
ProxyPass "/ws/" "http://localhost:4551/"
ProxyPassReverse "/ws/" "http://localhost:4551/"
ErrorLog /var/log/apache2/yourpart.error.log
CustomLog /var/log/apache2/yourpart.access.log combined