2016-04-23 73 views
1

我对这个配置有问题。我的AWS ELB接受端口80上的TCP连接,并使用代理协议将它们转发到监听端口8080的nginx实例。此nginx节点应该使用ip_hash模块将用户粘贴到特定节点。AWS ELB - > nginx - > socket.io node.js粘性负载平衡

这是工作完全正常,但只有2出了4个节点的正在使用的,而不是被负载各方进行平衡,这是我的nginx的配置

upstream socket_nodes { 
    ip_hash; 
    server a.server.com:2000; 
    server a.server.com:2001; 
    server a.server.com:2002; 
    server a.server.com:2003; 
} 

# Accept connections via the load balancer 
server { 
    listen 8080 proxy_protocol; 
    set_real_ip_from 0.0.0.0/32; 
    real_ip_header proxy_protocol; 
    charset utf-8; 
    location/{ 
     proxy_pass http://socket_nodes; 
     proxy_http_version 1.1; 
     proxy_set_header Upgrade $http_upgrade; 
     proxy_set_header Connection "upgrade"; 
     proxy_set_header Host $host; 
     proxy_set_header X-Real-IP $remote_addr; 
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
     proxy_set_header X-Forwarded-Proto $scheme; 
    } 
} 

回答

0

与“循环”负载平衡,ip_hash表示对于任何给定的IP地址,NGINX将总是转发到同一个应用程序实例。