From 2bf949513b75dcf74d222eeed694fd13a6793cc4 Mon Sep 17 00:00:00 2001 From: "Torsten Schulz (local)" Date: Wed, 14 Jan 2026 10:28:23 +0100 Subject: [PATCH] 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. --- test-websocket-config.sh | 43 ++++++++++++++++++++++++++++++++++++++++ yourpart-https.conf | 30 ++++++++++++---------------- 2 files changed, 56 insertions(+), 17 deletions(-) create mode 100755 test-websocket-config.sh diff --git a/test-websocket-config.sh b/test-websocket-config.sh new file mode 100755 index 0000000..0204ee2 --- /dev/null +++ b/test-websocket-config.sh @@ -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." diff --git a/yourpart-https.conf b/yourpart-https.conf index 4f814bc..db5a741 100644 --- a/yourpart-https.conf +++ b/yourpart-https.conf @@ -24,30 +24,26 @@ 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