0
我有兩個NodeJS應用程序,socket.io位於本地(docker)NGINX負載均衡器的後面。 Wenn只有一個應用程序運行正常。當我添加第二個時,每次重新加載時都會收到以下錯誤消息。負載均衡,Websockets和NodeJS錯誤
WebSocket connection to 'wss://[HOST]/socket.io/?EIO=3&transport=websocket&sid=9CmO27cJsdmqMwwXAAAK' failed: Error during WebSocket handshake: Unexpected response code: 400
這裏我NGINX配置:
user nginx;
worker_processes 1;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
upstream myhost {
least_conn;
server 192.168.99.1:3333;
server 192.168.99.1:4444;
}
server {
listen 80;
listen 443 ssl;
server_name [HOST];
ssl_certificate server.crt;
ssl_certificate_key server.key;
location/{
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_http_version 1.1;
proxy_pass http://myhost;
}
}
}
謝謝,但我設置的WebSockets有和沒有多節點設置 – refextu
@refextu哪種方法你用? – robertklep
redis:'io.adapter(redis({host:'192.168.99.1',port:6379}));'和連接工作得很好。當我用一個不負載均衡的端口啓動一個應用程序併發出一個事件。它將被推送到負載均衡應用上連接的客戶端。 – refextu