Ich will über nodejs und Socket.io Push-Notifications für eine Webseite realisieren. Der offiziellen Empfehlung folgend lasse ich den node-Server nicht direkt am Internet lauschen, sondern verstecke ihn hinter einem nginx-Proxy. Das Problem an der Sache: nginx (und scheinbar auch kaum ein anderer vollwertiger Webserver) unterstützt kein HTTP 1.1, d.h. Websockets können nicht korrekt über die Proxy-Funktion behandelt werden. Damit funktioniert Socket.io nicht richtig.
Die nächste Empfehlung ist nun, vor nginx nochmal einen Proxy wie z.B. HAProxy zu schalten und dann Requests entsprechend an nginx oder den Socket.io-Socket weiterzuleiten.
Es stellt sich mir dabei allerdings die Frage: Wozu die Akrobatik? Was ist denn bitte der Mehrwert eines durchschleifenden Proxies? Wieso kann ich nicht direkt zumindest die Socket.io-Verbindungen direkt zulassen?
Ich hoffe irgendjemand kann mich erhellen... Der Aufstand muss ja zu was gut sein