Страница 1 из 1

Проблема с ip_hash в nginx

Добавлено: 2012-11-28 20:14:48
skrab83
На многих форумах видел подобные темы, но решения так и не нашел.

Проблема следующая. Есть 2 сервера с копиями сайта. Есть сервер с nginx, который должен равномерно распределять между ними нагрузку.
в конфиге nginx есть описание:
upstream MyCloud

Код: Выделить всё

{
ip_hash;
server xxx.xxx.xxx.124 max_fails=10  fail_timeout=50s;
server xxx.xxx.xxx.123 max_fails=10  fail_timeout=50s;
}
Задача: распределять нагрузку на оба сервера примерно равномерно, при этом, привязывать каждого пользователя к одному серверу, чтоб не терялась сессия.
Почему-то все нагрузка приходится на второй сервер. если второй сервер выключить, все идет на первый сервер и работает нормально. Если убрать "ip_hash" нагрузка распределяется примерно равномерно. Но мне нужна эта директива и привязка пользователя к одному серверу.
Пробовал тестировать с разных серверов с разными IP. результат всегда один. и нагрузка всегда идет именно на второй сервер, даже если их поменять местами.

Как сделать и равномерное распределение нагрузки и привязку пользователей к серверам одновременно?

Re: Проблема с ip_hash в nginx

Добавлено: 2013-02-20 16:18:45
menmenov
Маска подсети у серверов с копиями сайта должна быть не 255.255.255.0, а 255.255.0.0 или 255.0.0.0

Проблема с ip_hash в nginx

Добавлено: 2019-06-14 11:19:37
Ivan20172017
Нужно тестировать с компов с разными сетями, так как хеш (для привязки клиента к серверу) вычисляется на основе сети, а не айпи-адреса.
То есть пакеты с клиентов 192.168.1.1 и 192.168.1.2 пойдут на один сервер, а вот если с 192.168.2.1 - уже на другой!