проблема с upstream_hash

Konstantin Svist fry.kun на gmail.com
Пт Июн 22 20:38:42 UTC 2012


Баг: если в списке upstream есть хосты с IP адресом 127.0.0.1 то 
upstream_hash работает неправильно.

Понятно что это 3rd party plugin, но в его коде нету ничего 
подозрительного - скорее nginx что-то хитро оптимизирует...


upstream  cl1  {
         hash        $arg_key;
         hash_again  10;
         server  srv1:6381;
         server  srv1:6411;
         server  srv1:6436;
         server  srv1:6437;
         server  srv2:6381;
         server  srv2:6411;
         server  srv2:6436;
         server  srv2:6437;
     }

Запрос на srv1:

2012/06/22 12:00:00 [debug] 11111#0: *1234567890 http script var: 
"3197dc0f345aae7132ab1e3b432ddb00"
2012/06/22 12:00:00 [debug] 11111#0: *1234567890 upstream_hash: hashed 
"3197dc0f345aae7132ab1e3b432ddb00" to 3
2012/06/22 12:00:00 [debug] 11111#0: *1234567890 upstream_hash: Starting 
with 3
2012/06/22 12:00:00 [debug] 11111#0: *1234567890 upstream_hash: get 
upstream request hash peer try 10
2012/06/22 12:00:00 [debug] 11111#0: *1234567890 upstream_hash: chose 
peer 3 w/ hash 19143 for tries 10

Запрос на любом другом хосте:

2012/06/22 12:00:00 [debug] 11111#0: *1234567890 http script var: 
"3197dc0f345aae7132ab1e3b432ddb00"
2012/06/22 12:00:00 [debug] 11111#0: *1234567890 upstream_hash: hashed 
"3197dc0f345aae7132ab1e3b432ddb00" to 7
2012/06/22 12:00:00 [debug] 11111#0: *1234567890 upstream_hash: Starting 
with 7
2012/06/22 12:00:00 [debug] 11111#0: *1234567890 upstream_hash: get 
upstream request hash peer try 10
2012/06/22 12:00:00 [debug] 11111#0: *1234567890 upstream_hash: chose 
peer 7 w/ hash 19143 for tries 10




Подробная информация о списке рассылки nginx-ru