nodePush über ReverseProxy

  • Hallo,
    nodePush funktioniert an sich bei mir seit mehreren Jahren sehr gut. Nun wollte ich aber statt den nodePush Server von außen direkt über Port 900x erreichbar zu machen einen Reverseproxy benutzen. Hintergrund ist der, dass ich meine Seite gern nur noch über https erreichbar machen wollen würde. Zertifikat ist da und die Seite an sich läuft auch mit https wunderbar. Allerdings meckert der Clientbrowser, verständlicherweise bei dem aktuellen Einstellungen, über mixed content und blockiert die nodePush anbindung über die http Adresse auf Port 900x.
    Also ReverseProxy installiert und soweit eingerichtet. Geht auch kann die nodePush Statusseite erreichen. In der aktuellen Konfiguration, siehe Screenshots, klappt dies auch wunderbar. Ich bin auf der Seite, eine Verbindung von "draußen".


    Wie man sieht Statusseite problemlos erreichbar, jedoch nodePush noch über Port 9002 angebunden daher die 1.


    Nun änder ich die Einstellung im ACP volgendermaßen ab:
    und aktualisiere die Seite und bekomme:
    Sobald ich den Pfad im ACP eintrage wie es eigendlich laufen sollte, keine Anbdingung von draußen mehr und zb "NodePush Ankündigung" als Test funktioniert logischerweise nicht mehr.


    Hier sind meine restlichen Einstellungen auf dem Webserver:

    Und nur damit es zu keinen Missverständnissen kommt, nodePush läuft auf einem seperaten Server, erreichbar über "nodePush".

    Deswegen ist auch der inbound Socket auf 0.0.0.0 jedoch die Fierwall lässt die inbound Ports nur im lokalen Netz zu. Der inbound Socket über tcp://nodePush:9052 funktioniert auch super und daran muss ja auch nichts geändert werden. Geht rein um die Anbindung von außen. Ich denke mal ich habe irgendwo einen Denkfehler drin da die Statusseite erreichbar ist aber die eigendliche Anbindung nicht. Ich weiß auch nicht genau, wie sich die Website an den nodePush Server anbindet. Deshalb kann ich bei der Problemlösung nur raten.


    Zur Info: die Seite läuft noch über http da es da ja erst mal funktionieren sollte. Sollte dann alles gehen ist es ja kein problem auf https umzustellen. Nur so müsste es ja erst mal funktionieren.


    Ich hoffe ihr könnt mir helfen da ich schon gern in naher Zukunft auf https umsteigen möchte aber auf den Push server nicht verzichten mag.


    MfG Thomas

  • Hallo,


    du kannst die Status-Seite durch den Reverse-Proxy hinweg aufrufen? Dann hat dein Reverse Proxy (IIS?) vermutlich keine Unterstützung für WebSockets.

  • Hallo,
    ja wie auf dem 2. und 4. Bild zu sehen habe ich immer die Statusseite über den Reverseproxy abgerufen -> "domain.de/nodepush" wie oben zu sehen. Gehen tut so aber nur die Statusseite jedoch nicht die eigendliche Anbindung des Forums. Diese nur mit domain.de:9002 und eine weiterleitung dieses Ports.
    Und ja der Reverseproxy ist auf dem IIS. Ich habe oben mal die Weiterleitungsregel und auch die Reverse Proxy Einstellungen gepostet, in der Hoffnung das es vielleicht nur eine falsche Einstellung ist, die auffällt.
    Oder kann nodePush nicht auf einem Subpfad wie /nodepush liegen sondern muss auf einer Domain selber laufen mit anderem Port dann?


    Aber nun hast du mir ja einen begriff genannt. Ich werde mal googlen ob der ReverseProxy Websockets unterstützt und wenn ja wie man dies konfigurieren kann.
    Es geht mir auch nur darum, dass die website auf https laufen soll und wenn nodepush weiter auf http läuft diese anbindung blockiert wird.


    MfG Thomas

  • Hab mich mal etwas schlau gemacht um etwas Licht ins dunkel zu bringen und doch IIS unterstützt Websockets.


    Zitat

    IIS 8.0 The WebSocket Protocol was introduced in IIS 8.0.

    Ich habe IIS version 10. Habe auch den Websocket support nachinstalliert wobei ich glaube, dass der nur für den einsatz von websockets auf diesem webserver genutzt wird und nicht beim Weiterleiten.


    Dann ARR (Application Request Routing) 3.0 was bei IIS unter anderem der ReverseProxy ist. Bei mir Version 3.0 vorhanden, die neuste.

    Zitat

    New features
    ARR 3.0 was released in Beta in December of 2012, and included the following new features:
    · Retries for URL Health Monitoring
    · Web Socket Support


    Bei meinen Nachforschungen bin ich immer wieder drauf gekommen das eventuell die umleitung das Problem sein könnte.


    Meine Umleitung macht ja aus http://www.domain.de/nodepush -> http://nodePush:9002/ was ja auch wunderbar funktioniert (siehe Statusseite) jedoch hab ich oft gelesen das Websockets mittels ws://www.domain.de/ws -> ws://websocketserver:8080/ws umgeleitet wurden also http das falsche protokoll? Wobei im ACP ja auch http bzw https angegeben wird.


    Dann wie sieht der Link die abfrage eines Websockets bei nodepush aus? habe da leider nicht das fachwissen. Der zweite Fehler könnte daran liegen das das, was noch am link dran kommt, wenn noch was dran kommt, nicht richtig umgeleitet wird.
    zb.: ws://www.domain.de/nodepush/socket.io/12334 -> ws://nodePush:9002/socket.io/12334 ?!


    Mehr Informationen wie genau die Socketumleitung funktionieren sollte, würden mir helfen den Fehler zu finden was bei meiner Umleitung falsch läuft.
    Hier noch einmal meine Umleitungseinstellung:


    Und meine Proxyeinstellung wobei es daran glaube ich nicht liegt:


    Ich denke wie gesagt das die Umleitung an sich fehlerhaft ist aber für mich auch sehr schwirig zu testen.
    Hoffe ich bin auf der richtigen Spur.


    MfG Thomas

  • Hallo,


    zum IIS kann ich leider gar nichts sagen. Ad hoc tippe ich darauf, dass der "Unterordner" an den Problemen Schuld hat. Wenn du mir einen Testzugang gibst, dann könnte ich das auch eben selbst verifizieren (Stichwort "mit den Entwicklertools schauen, was für Abfragen gesendet werden).