Re: Как работает связка ip hash и weight ?
VovansystemS
vovansystems at gmail.com
Sun Mar 3 12:21:24 UTC 2013
>> И так работает всегда. Weight в данном случае ни на что не влияет.
>> Если конфиг верный, возможно периодически "пропадают" сервера (нужно
>> копать в сторону fail_timeout и max_fails и тестировать стабильность
>> связи). Выше Максим всё это расписал подробно.
>
> Да, я читал, что писал Максим, но результаты вполне повторяемы: есть weight
> - скачим по нодам, убираем weight - всё ок. "Пропадающие" сервера пропадали
> бы и с weight. Поэтому хотелось бы всё-таки узнать алгоритм. weight влияет
> только на распределение новых IP, которых ещё нет в хеше ?
nginx version: nginx/1.2.7 - не получилось воспроизвести Ваш глюк. при
включённом ip_hash мне всегда выдаёт один и тот же сервер из upstream
- как с включёными весами, так и с отключенными (я протестировал
множество разных конфигураций, разные веса, например). Проверял через
юникс-сокеты и переменную $upstream_addr.
Вот кусочки конфигов:
upstream backend {
ip_hash;
server unix:/var/run/fpm1.sock weight=2;.
server unix:/var/run/fpm2.sock weight=5;
}
location /z/ {
try_files $fastcgi_script_name =404;
include fastcgi_params;
fastcgi_pass backend;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
add_header X-Upstream-addr $upstream_addr;
}
Возможно, у Вас размер таблицы для хешей маловат и не все туда
помещаются. Кто не влазит - будет "прыгать", судя по всему. Но об этом
должны быть сообщения в логе ошибок.
Наверное, стоит таже показать Ваши конфиги.
Подробная информация о списке рассылки nginx-ru