1 / 4
Dec 2024

Moin,
grundsätzlich funktioniert die eGroupware so wie sie soll, bis auf den Push Service.
Wenn ich in der eGroupware auf Test Push gehe ist alles grün:

Push::onlyFallback()=false --> Verwendung von nativem Swoole Push
SwoolPush\Backend::failedAttempts()=0, SwoolePush\Backend::backoffTime=60
SwoolePush\Backend->online()=[]
Push::onlyFallback()=false --> Verwendung von nativem Swoole Push
SwoolPush\Backend::failedAttempts()=0, SwoolePush\Backend::backoffTime=60
Push->online()=[]

Curl gibt folgendes aus:
egpwsrv@egpwsrv:~$ curl -i https://<my_public_address>/egroupware/push
**HTTP/2 401 **
server: nginx
date: Mon, 02 Dec 2024 12:11:14 GMT
content-type: text/html
content-length: 21
www-authenticate: Basic realm=“EGroupware Push Server”

Missing Bearer Token!

Das gleiche kommt auch wenn ich den curl in dem Container ausführe.
Auch der Vergleich der session-id ergab keine Unterschiede.
Bis hier hin sieht alles so aus als ob es läuft.

Nur wenn ich im Browser z.B. einen neuen Termin eintrage kommt in der Admin Konsole ein 401 mit
NS_ERROR_WEBSOCKET_CONNECTION_REFUSED

Auf dem Webserver habe ich die Firewall temporär komplett abgeschaltet - keine Änderung.
Exact das gleiche Verhalten.

Im push log kommt immer wieder diese Meldung:
Warning: Undefined array key “authorization” in /var/www/server.php on line 119

Noch was zu meiner Netzwerk Konfiguration:
Router <-> Hauptserver mit Reverse Proxy <-> eGroupware Server
Der Hauptserver zieht sich das Zertifikat von Let’s Encrypt und kopiert das auf den eGroupware Server.
Grund hierfür ist das der Hauptserver das Zertifikat braucht und Let’s Encrypt keine zwei Anfragen für die gleiche Domain zulässt.
Der Aufruf der eGroupware Seite funktioniert ohne Probleme von allen Systemen aus, d.h. das Zertifikat wird richtig genutzt.

Jetzt bin ich langsam mit meinem Latein am Ende.
Woran kann das noch liegen die Websockets Refused werden?
Oder habe ich da Grundsätzlich einen Denkfehler?

Grüße
Markus

  • created

    Dec '24
  • last reply

    Dec '24
  • 3

    replies

  • 97

    views

  • 3

    users

  • 1

    like

Hallo Markus,

Sieht so aus, als würde Dein “Hauptserver” / Reverse Proxy keine Websockets unterstützen, im Nginx muss man das z.B. explizit einschalten.

Ralf

Danke Ralf!!
Das war der Tritt in die richtige Richtung.
Den Hauptserver hatte ich bei diesem Problem gar nicht auf dem Schirm.
Dachte immer das wäre nur Web-Server intern.
Websockets mussten auch dort explizit freigeschaltet werden und schwupps geht es.
Danke nochmal für die schnelle Hilfe.

Per Websockets wird eine Verbindung zwischen Webbrowser und Webserver offen gehalten. Das ermöglicht dem Web-/Anwendungsserver Nachrichten an wen Webbrowser zu pushen und im UI etwas aus zu lösen. So z.B. eine Aktualisierung des Kalenders, Adressbuch, Kanban-Board, … wenn jemand anders etwas hinzugefügt oder geändert hat. Oder eine neue E-Mail eintrifft, oder…

Im Kanban Board kann man auch sehr gut sehen wie schnelle das geht. Verschiebt jemand eine Karte, passiert das praktisch augenblicklich bei anderen.

Somit ist die Strecke Webbrowser <=> Webserver immer komplett zu betrachten.

Stefan