2016-04-23 15 views
1

この設定で問題が発生しています。 AWS ELBはポート80でTCP接続を受け入れ、プロキシプロトコルを使用してポート8080で待機するnginxインスタンスに転送します。このnginxノードは、ip_hashモジュールを使用してユーザーを特定のノードに固定します。 AWS ELB - > nginx - > socket.io node.jsスティッキーロードバランシング

この

は完全に正常に動作しているが、4つのノードのうち2つだけではなく、それらのすべての間で負荷分散であることの使用されている、ここに私の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アドレスに対して、常に同じアプリケーションインスタンスに転送することを意味します。

関連する問題