Re: Как работает связка ip hash и weight ?

Maxim Dounin mdounin at mdounin.ru
Thu Feb 7 10:58:46 UTC 2013


Hello!

On Thu, Feb 07, 2013 at 01:47:30AM -0500, gintonic wrote:

> Всем привет.
> Объясните пожалуйста как работает данная связка. Версия nginx 1.2.6
> Сейчас в логе есть такие записи:
> 2013/02/07 07:06:19 [error] 32106#0: *6369192 upstream timed out (110:
> Connection timed out) while reading response header from upstream, client:
> 195.72.228.242, server: *.ru, request: "GET /App_Shared/Handlers/Grid.ashx
> HTTP/1.1", upstream: "http://192.168.1.41:80/App_Shared/Handlers/Grid.ashx",
> host: "www.site.ru", referrer: "http://www.site.ru/home/home.aspx"
> 2013/02/07 07:08:19 [error] 32106#0: *6369192 upstream timed out (110:
> Connection timed out) while reading response header from upstream, client:
> 195.72.228.242, server: *.ru, request: "GET /App_Shared/Handlers/Grid.ashx
> HTTP/1.1", upstream: "http://192.168.1.51:80/App_Shared/Handlers/Grid.ashx",
> host: "www.site.ru", referrer: "http://www.site.ru/home/home.aspx"
> ---------------
>  Только, пожалуйста, не надо обращать внимание на таймауты бэкенда и то что
> это aspx! Вопрос не в этом.
> Почему  запросы с одного IP попадают в разные бэкенды?
> Конфиг такой:
> upstream backend_web_servers {
> 	ip_hash;
> 	server 192.168.1.41:80 weight=4 max_fails=3 fail_timeout=30s;
> 	server 192.168.1.51:80 weight=6 max_fails=3 fail_timeout=30s;
>       }

Если бекенд не отвечает на запрос (как в данном случае) - запрос 
отправляется (или не отправляется) на другой бекенд в соответствии 
с proxy_next_upstream.

http://nginx.org/r/proxy_next_upstream/ru

Если бекенд уже мёртв в соответствии с max_fails/fail_timeout - 
запрос сразу отправляется на какой-то другой бекенд.

http://nginx.org/r/ip_hash/ru

-- 
Maxim Dounin
http://nginx.com/support.html



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