diff --git a/check-apache-websocket.sh b/check-apache-websocket.sh new file mode 100755 index 0000000..ecc53af --- /dev/null +++ b/check-apache-websocket.sh @@ -0,0 +1,45 @@ +#!/bin/bash + +echo "=== Apache WebSocket-Konfiguration prüfen ===" +echo "" + +# Prüfe, welche Module aktiviert sind +echo "Aktivierte Apache-Module:" +apache2ctl -M 2>/dev/null | grep -E "(proxy|rewrite|ssl|headers)" || echo "Keine relevanten Module gefunden" +echo "" + +# Prüfe, ob die benötigten Module aktiviert sind +REQUIRED_MODULES=("proxy" "proxy_http" "proxy_wstunnel" "rewrite" "ssl" "headers") +MISSING_MODULES=() + +for module in "${REQUIRED_MODULES[@]}"; do + if ! apache2ctl -M 2>/dev/null | grep -q "${module}_module"; then + MISSING_MODULES+=("$module") + fi +done + +if [ ${#MISSING_MODULES[@]} -eq 0 ]; then + echo "✅ Alle benötigten Module sind aktiviert" +else + echo "❌ Fehlende Module:" + for module in "${MISSING_MODULES[@]}"; do + echo " - $module" + done + echo "" + echo "Aktivieren mit:" + for module in "${MISSING_MODULES[@]}"; do + echo " sudo a2enmod $module" + done +fi + +echo "" +echo "=== Apache-Konfiguration testen ===" +if sudo apache2ctl configtest 2>&1; then + echo "✅ Apache-Konfiguration ist gültig" +else + echo "❌ Apache-Konfiguration hat Fehler" +fi + +echo "" +echo "=== Aktive VirtualHosts ===" +apache2ctl -S 2>/dev/null | grep -E "(443|4443|4551)" || echo "Keine relevanten VirtualHosts gefunden" diff --git a/yourpart-https.conf b/yourpart-https.conf index 941ab28..4f814bc 100644 --- a/yourpart-https.conf +++ b/yourpart-https.conf @@ -18,28 +18,36 @@ FallbackResource /index.html - # API-Requests an Backend weiterleiten - ProxyPass "/api/" "http://localhost:2020/api/" - ProxyPassReverse "/api/" "http://localhost:2020/api/" + # Proxy-Einstellungen + ProxyPreserveHost On + ProxyRequests Off + RequestHeader set X-Forwarded-Proto "https" + AllowEncodedSlashes NoDecode - # WebSocket-Requests an Backend weiterleiten - ProxyPass "/socket.io/" "http://localhost:2020/socket.io/" - ProxyPassReverse "/socket.io/" "http://localhost:2020/socket.io/" - - # WebSocket-Upgrade-Header für Socket.io + # 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-Header für Daemon-Verbindungen + # WebSocket-Upgrade für Daemon-Verbindungen RewriteCond %{HTTP:Upgrade} websocket [NC] RewriteCond %{HTTP:Connection} upgrade [NC] RewriteRule ^/ws/(.*)$ "ws://localhost:4551/$1" [P,L] - # WebSocket-Proxy für Daemon-Verbindungen mit benutzerdefiniertem Protokoll - ProxyPass "/ws/" "ws://localhost:4551/" upgrade=websocket - ProxyPassReverse "/ws/" "ws://localhost:4551/" + # API-Requests an Backend weiterleiten + ProxyPass "/api/" "http://localhost:2020/api/" + ProxyPassReverse "/api/" "http://localhost:2020/api/" + + # 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