Refactor WebSocket and API configurations in yourpart-https.conf and yourpart-websocket-fixed.conf

- Removed outdated WebSocket handling from yourpart-https.conf for improved clarity.
- Updated yourpart-websocket-fixed.conf to enable SSL and adjust WebSocket proxy settings.
- Streamlined fallback logic in frontend store to ensure direct connection to the daemon on port 4551.
- Enhanced logging for better debugging and monitoring of daemon connections.
This commit is contained in:
Torsten Schulz (local)
2026-01-14 13:02:38 +01:00
parent b3707d21b2
commit 0cc280ed55
3 changed files with 20 additions and 39 deletions

View File

@@ -293,26 +293,13 @@ const store = createStore({
// Wenn Umgebungsvariable nicht gesetzt ist oder leer, verwende Fallback-Logik // Wenn Umgebungsvariable nicht gesetzt ist oder leer, verwende Fallback-Logik
if (!daemonUrl || (typeof daemonUrl === 'string' && daemonUrl.trim() === '')) { if (!daemonUrl || (typeof daemonUrl === 'string' && daemonUrl.trim() === '')) {
// In Produktion: Verwende /ws/ über Nginx-Proxy (Port 443) // Immer direkte Verbindung zum Daemon-Port 4551 (verschlüsselt)
if (isProduction) {
const protocol = window.location.protocol === 'https:' ? 'wss:' : 'ws:';
daemonUrl = `${protocol}//${hostname}/ws/`;
console.log('[Daemon] Verwende Nginx-Proxy /ws/ über Port 443');
} else {
// Lokale Entwicklung: direkte Verbindung zum Daemon-Port 4551
const protocol = window.location.protocol === 'https:' ? 'wss:' : 'ws:'; const protocol = window.location.protocol === 'https:' ? 'wss:' : 'ws:';
daemonUrl = `${protocol}//${hostname}:4551/`; daemonUrl = `${protocol}//${hostname}:4551/`;
console.log('[Daemon] Verwende Fallback basierend auf Hostname, Protokoll und Port 4551'); console.log('[Daemon] Verwende direkte Verbindung zu Port 4551');
}
} else { } else {
// Wenn Umgebungsvariable gesetzt ist, aber in Produktion: Konvertiere Port 4551 zu /ws/ // Wenn Umgebungsvariable gesetzt ist, verwende sie direkt
if (isProduction && daemonUrl.includes(':4551')) { console.log('[Daemon] Verwende Umgebungsvariable:', daemonUrl);
const protocol = window.location.protocol === 'https:' ? 'wss:' : 'ws:';
daemonUrl = `${protocol}//${hostname}/ws/`;
console.log('[Daemon] Konvertiere Port 4551 zu /ws/ für Nginx-Proxy');
} else {
console.log('[Daemon] Verwende Umgebungsvariable');
}
} }
console.log('[Daemon] Finale Daemon-URL:', daemonUrl); console.log('[Daemon] Finale Daemon-URL:', daemonUrl);

View File

@@ -49,19 +49,6 @@
ProxyPassReverse "http://localhost:2020/socket.io/" ProxyPassReverse "http://localhost:2020/socket.io/"
</LocationMatch> </LocationMatch>
# Daemon: WebSocket mit Location-Block
<LocationMatch "^/ws/">
# WebSocket-Upgrade
RewriteEngine on
RewriteCond %{HTTP:Upgrade} websocket [NC]
RewriteCond %{HTTP:Connection} upgrade [NC]
RewriteRule .* "ws://localhost:4551%{REQUEST_URI}" [P,L]
# HTTP-Fallback
ProxyPass "http://localhost:4551/"
ProxyPassReverse "http://localhost:4551/"
</LocationMatch>
ErrorLog /var/log/apache2/yourpart.error.log ErrorLog /var/log/apache2/yourpart.error.log
CustomLog /var/log/apache2/yourpart.access.log combined CustomLog /var/log/apache2/yourpart.access.log combined

View File

@@ -1,31 +1,38 @@
# /etc/apache2/sites-available/yourpart-websocket.conf # /etc/apache2/sites-available/yourpart-websocket.conf
<IfModule mod_ssl.c>
<VirtualHost *:4551> <VirtualHost *:4551>
ServerName www.your-part.de ServerName www.your-part.de
# SSL aktivieren
SSLEngine on
Protocols http/1.1
# SSL-Konfiguration # SSL-Konfiguration
Include /etc/letsencrypt/options-ssl-apache.conf Include /etc/letsencrypt/options-ssl-apache.conf
SSLCertificateFile /etc/letsencrypt/live/www.your-part.de/fullchain.pem SSLCertificateFile /etc/letsencrypt/live/www.your-part.de/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/www.your-part.de/privkey.pem SSLCertificateKeyFile /etc/letsencrypt/live/www.your-part.de/privkey.pem
# HTTP/2 deaktivieren # Proxy-Einstellungen
Protocols http/1.1
# WebSocket-Proxy (unverschlüsselt zu Daemon)
ProxyPreserveHost On ProxyPreserveHost On
ProxyRequests Off ProxyRequests Off
AllowEncodedSlashes NoDecode
# WebSocket-Upgrade (muss VOR ProxyPass stehen) # WebSocket-Upgrade (muss VOR ProxyPass stehen)
RewriteEngine On RewriteEngine On
RewriteCond %{HTTP:Upgrade} websocket [NC] RewriteCond %{HTTP:Upgrade} websocket [NC]
RewriteCond %{HTTP:Connection} upgrade [NC] RewriteCond %{HTTP:Connection} upgrade [NC]
RewriteRule ^/?(.*) "ws://localhost:4551/$1" [P,L] RewriteRule ^/?(.*) "ws://localhost:4552/$1" [P,L]
# Fallback für normale HTTP-Requests (falls nötig) # Fallback für normale HTTP-Requests (falls nötig)
ProxyPass / http://localhost:2020/ ProxyPass / http://localhost:4552/
ProxyPassReverse / http://localhost:2020/ ProxyPassReverse / http://localhost:4552/
# CORS-Headers # CORS-Headers
Header always set Access-Control-Allow-Origin "https://www.your-part.de" Header always set Access-Control-Allow-Origin "https://www.your-part.de"
Header always set Access-Control-Allow-Methods "GET, POST, OPTIONS" Header always set Access-Control-Allow-Methods "GET, POST, OPTIONS"
Header always set Access-Control-Allow-Headers "Origin, X-Requested-With, Content-Type, Accept, Authorization" Header always set Access-Control-Allow-Headers "Origin, X-Requested-With, Content-Type, Accept, Authorization"
ErrorLog /var/log/apache2/yourpart-websocket.error.log
CustomLog /var/log/apache2/yourpart-websocket.access.log combined
</VirtualHost> </VirtualHost>
</IfModule>