Sto eseguendo NGINX come proxy inverso per un server Socket.IO che carica il carico delle richieste su più processi del cluster. A ciascuno dei processi del cluster viene detto di ascoltare su porte diverse.Socket.IO Cluster con problemi di bilanciamento del carico nginx
Il server nginx è configurato per bilanciare il carico sulla base di hash IP ma ottengo il messaggio:
ws://{domain}/socket.io/?EIO=3&transport=websocket&sid=KaU3C8caGVK4gU1LAAAB failed: WebSocket is closed before the connection is established.
mio nginx config ha: vhost
http {
{+ default configs}
upstream io_nodes {
ip_hash;
server 127.0.0.1:3000;
server 127.0.0.1:3001;
server 127.0.0.1:3002;
server 127.0.0.1:3003;
}
}
di default:
server {
#listen 80; ## listen for ipv4; this line is default and implied
#listen [::]:80 default ipv6only=on; ## listen for ipv6
root /usr/share/nginx/www/static/web;
index index.html index.htm;
# Make site accessible from http://localhost/
server_name {domain};
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://io_nodes;
}
}
Qualsiasi aiuto sarebbe apprezzato. Se eseguo il server nodejs senza cluster si comporta correttamente, il riferimento che ho usato per questa configurazione si trova su: http://socket.io/docs/using-multiple-nodes/.
Grazie