Node.js 如何配置nginx将websockets转发到其他进程

Node.js 如何配置nginx将websockets转发到其他进程,node.js,nginx,websocket,Node.js,Nginx,Websocket,我有一个RESTAPI,由端口3000处的node express服务器提供服务。使用socket.io,在同一端口上还有一个连接到express服务器的websocket 为了扩展节点服务器,我们决定将websocket服务器拆分为一个全新的进程,并将其托管在一个新端口(3002)上 如何配置nginx将所有websocket消息转发到端口3002上的新进程,同时将所有其他消息转发到端口3000上的原始restapi服务器?您只需配置一个位置指令来代理您的websocket服务器 locati

我有一个RESTAPI,由端口3000处的node express服务器提供服务。使用socket.io,在同一端口上还有一个连接到express服务器的websocket

为了扩展节点服务器,我们决定将websocket服务器拆分为一个全新的进程,并将其托管在一个新端口(3002)上


如何配置nginx将所有websocket消息转发到端口3002上的新进程,同时将所有其他消息转发到端口3000上的原始restapi服务器?

您只需配置一个位置指令来代理您的websocket服务器

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";
}

如果您的连接客户端是纯websocket客户端,那么您可能需要将websocket连接url设置为
ws://example.com/websocket/socket.io/?EIO=3&transport=websocket

您是否尝试过:@ErkiA如何指定转发websocket的端口与转发常规http请求的端口?