2014-10-22 13 views
5

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

risposta

Problemi correlati