1

У меня возникла проблема с этой конфигурацией. Мой AWS ELB принимает TCP-соединения на порту 80 и пересылает их с использованием протокола прокси-сервера для экземпляра nginx, прослушивающего порт 8080. Этот узел 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 всегда будет перенаправляться на тот же экземпляр приложения.

Смежные вопросы