nodePush 2

    • Offizieller Beitrag

    Hallo,


    ich habe mir eben die Zeit genommen nodePush mal ein wenig aufzuräumen und ein paar potentielle Fehlerquellen bei der Einrichtung zu beseitigen. Das bedeutet aber, dass die Konfiguration von nodePush inkompatibel zu nodePush 1 geworden ist.


    Ich bitte daher ein paar mutige Nutzer – welche nodePush bereits im Einsatz haben – sich bei mir via Konversation zu melden. Ihr erhaltet dann exklusiven Zugriff auf die auf GitHub bereits öffentlich einsehbare Version 2 :D Die Push-Erweiterungen, die ihr bereits installiert habt (also z.B. Tims Chat) bleiben dabei weiterhin voll funktionsfähig!

    • Offizieller Beitrag

    Hallo,


    zuerst: Bitte entschuldige meine etwas späte Antwort, ich hatte in den letzten Tagen viel zu tun. Schau dir am besten folgendes Thema an: SSL


    Ich empfehle aber generell einen Reverse Proxy (z.B. nginx) vor nodePush zu stellen. Dieser sollte dann auch die SSL-Terminierung durchführen.

  • Kein Problem. NGINX läuft ja bei mir.


    Das habe ich mir schon zu Gemüte geführt funktoniert aber nicht. SSL
    Nur wo wird da was geändert? Ich bin doch kein Programmierer. Und so wirklich wird ja nicht gesagt was wo geändert werden muss oder soll. Ich habe ja das NodePush 2 von dir.


    Bekomme nur das beim starten.

    Code
    Error: Missing PFX or certificate + private key.
      at Server (tls.js:1125:11)
      at new Server (https.js:35:14)
      at Object.Server (https.js:29:41)
      at Object.<anonymous> (/var/www/vhosts/sa-sponsor.net/httpdocs/sa-sponsor.net/wcf/acp/be.bastelstu.wcf.nodePush/app.coffee:136:28)
      at Object.<anonymous> (/var/www/vhosts/sa-sponsor.net/httpdocs/sa-sponsor.net/wcf/acp/be.bastelstu.wcf.nodePush/app.coffee:1:1)
      at Module._compile (module.js:456:26)
    • Offizieller Beitrag

    Hallo,


    die Einrichtung eines Reverse-Proxys hat nicht direkt mit nodePush zu tun, sondern ist generell für den nginx. Hier der relevante Ausschnitt aus meiner nginx-Konfiguration:

    Als nodePush-Host ist einfach https://tims.bastelstu.be konfiguriert. Du kannst aber natürlich auch eine Subdomain der Wahl verwenden. Bei proxy_pass muss der Port ggf. angepasst werden. Anschließend wird die Verbindung auf den nginx durchgeführt, welcher die Ent-/Verschlüsselung übernimmt und dann an nodePush weitergereicht.

    • Offizieller Beitrag

    Hallo,


    da du ohnehin einen fähigen Reverse-Proxy einsetzt ist das nicht notwendig, nein. Der Apache ist beispielsweise nicht in der Lage Websockets zu tunneln, wodurch nodePush schlechter laufen würde. Ich empfehle grundsätzlich, sofern möglich, einen Reverse Proxy vor nodePush zu stellen.

  • NodePush 2 wird erscheinen, sobald ich nen Moment Zeit gefunden habe.

    Hey cool. Ist es dann auch da erforderlich die app.coffee zu bearbeiten sodas es auch mit SSL funktioniert? Musste dort was hinzufügen, damit es lauffähig wurde.

  • Hallo,


    wie ich schon sagte: Mit einem Reverse-Proxy funktioniert es problemlos ohne das bearbeiten der Datei. Ich empfehle ausdrücklich die Verwendung eines Reverse-Proxys.

    Dann wäre es schön wenn du das mal genauer erklären könntest. Denn bei mir läuft nginx und Reverse-Proxy und es geht eben nicht so wie es soll, nur mit änderun der app.coffee
    Ich will niemanden auf die Füsse treten, aber iwie denke ich Tim, das du der Annahme bist das man alles wissen muss. Denn im Moment hälst du wenig von etwas mehr ins Detail zu gehen. Es gibt nur Ansätze / Stichpunkte und das wars. Wäre schön wenn du das näher erklären würdest wie man das nodePush auch mit SSL zum laufen bekommt. Denn so wie jetzt gehts bei mir nicht.

  • warum diese nicht funktioniert.

    Habe alles so gemacht wie du es geschrieben hast. Trotzdem lässt sich der Push Server nicht mit https aufrufen nur mit http. Ändere ich die app.coffee dann funktioniert es mit https


    Orginal app.coffee

    Code
    app = do express
    app.use do (require 'cors')
    server = (require 'http').Server app
    server.on 'error', (e) -> throw new Error "Failed when starting http service: #{e.message}"


    Von mir angepasst damit https geht.

    Code
    app = do express
    privateKey = fs.readFileSync( './keys/mein.key' ) 
    certificate = fs.readFileSync( './keys/mein.crt' )
    cakey = fs.readFileSync( './keys/mein.crt' )
    options = {key: privateKey, cert: certificate, ca: cakey}
    app.use do (require 'cors')
    server = (require 'https').Server options, app
    server.on 'error', (e) -> throw new Error "Failed when starting http service: #{e.message}"


    So und nur mit dieser Änderung geht es mit https. Habe ich diese Änderung nicht dann gehts nur mit http, der Server läuft dann zwar macht dann aber nicht das so wie er es soll.

  • Hallo,


    dir ist bewusst, dass du das dann schon über die im Reverse-Proxy konfigurierte Domain aufrufen musst?! Das habe ich auch extra geschrieben.

    Also müsste die config so aussehen bei mir? Benutze Plesk 12

    Code
    location /socket.io/ {
    		proxy_set_header X-Real-IP $remote_addr;
    		proxy_set_header X-Forwarded-For $remote_addr;
    		proxy_set_header Host https://sa-sponsor.net;
    		proxy_pass http://127.0.0.1:60001;
    		proxy_http_version 1.1;
    		proxy_hide_header X-Powered-By;
    		proxy_set_header Upgrade $http_upgrade;
    		proxy_set_header Connection "upgrade";
    }

    Und der Startbefehl weiterhin so? node_modules/.bin/coffee app.coffee -- --outbound.port 60001 --outbound.host 199.217.117.223 --inbound.port 60002 --inbound.host 127.0.0.1 --enableStats

  • Hallo,


    die Konfiguration kann direkt übernommen werden, es ist keine Veränderung notwendig. Ob nodePush hinter dem Reverse Proxy funktioniert kannst du durch aufrufen von https://sa-sponsor.net/socket.io/socket.io.js prüfen.

    Das geht eben nicht bei mir. Siehe Failed to load resource: net::ERR_CONNECTION_CLOSED https://sa-sponsor.net:60001/socket.io/socket.io.js Und genau deswegen ist mit Stichpunkten einem nicht viel geholfen.


    Wieso aber geht es mit Änderung an der app.coffee? Und es geht zu hundert Prozent, nodePush macht dadurch seine Arbeit.


    Nachtrag vom 28.04.2015: Im Moment läuft der nodePush bei mir mit der geänderten app.coffee.