2017-04-14 1 views
0

Ich habe eine REST-API, die von einem Knoten-Express-Server an Port 3000 bedient wird. Mit socket.io ist auch ein Websocket mit dem Express-Server am selben Port verbunden.Konfigurieren von Nginx zum Weiterleiten von Websockets an einen anderen Prozess

Um unsere Knotenserver zu skalieren, haben wir beschlossen, die WebSocket-Server in einem völlig neuen Prozess abzuspalten, und haben es gehostet auf einem neuen Port (3002)

Wie kann ich nginx konfigurieren weiterleiten alle Websocket-Nachrichten an den neuen Prozess an Port 3002, während alle anderen an den ursprünglichen REST-API-Server an Port 3000 weitergeleitet werden?

+0

Haben Sie versucht setzen: https://www.nginx.com/blog/websocket-nginx/ –

+0

@ErkiA Wie würde ich angeben, welcher Port WebSockets im Vergleich zu welchem ​​Port für die Weiterleitung regulärer http-Anfragen weiterleiten soll? –

Antwort

1

Sie haben soeben einen Standort Richtlinie konfigurieren Sie für Proxying WebSocket Server

location /websocket/ { 

    proxy_pass http://127.0.0.1:3002; 
    proxy_http_version 1.1; 
    proxy_set_header Upgrade $http_upgrade; 
    proxy_set_header Connection "upgrade"; 
} 

Wenn Ihre Verbindung Client reinen websocket Client ist, dann müssen Sie möglicherweise websocket Verbindung URL ws://example.com/websocket/socket.io/?EIO=3&transport=websocket

Verwandte Themen