ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: $upstream_addr содержит имя апстрима



On Sat, Dec 01, 2012 at 02:01:34AM +0400, umask wrote:
> Доброй ночи,
> 
> имеется лог в таком формате:
> 
>         log_format main '$remote_addr\t'
>                         '$remote_user\t'
>                         '[$time_local]\t'
>                         '$msec\t'
>                         '$http_host\t'
>                         '$request\t'
>                         '$status\t'
>                         '$body_bytes_sent\t'
>                         '$http_referer\t'
>                         '$http_user_agent\t'
>                         '$http_x_forwarded_for\t'
>                         '$request_time\t'
>                         '$upstream_cache_status\t'
>                         '[$upstream_status]\t'
>                         '[$upstream_addr]\t'
>                         '[$upstream_response_time]\t'
>                         '$uid_set\t'
>                         '$uid_got\t'
>                         '$http_cookie\t'
>                         '$connection:$connection_requests\t';
> 
> почти все записи в логе не вызывают никаких вопросов.
> 
> Но есть вот такие (некоторые поля заменены для наглядности и приватности):
> 
> 10.20.30.40     -       [30/Nov/2012:06:14:01 +0400]    1354241641.781  
> domain.com      GET /blog/1.php HTTP/1.1        502     6100    -       
> Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)      
>   66.249.76.175   0.000   -       [502]   [web_backend]   [0.000] -       -   
>     -       88314:1
> 
> 11.22.33.44     -       [30/Nov/2012:08:23:09 +0400]    1354249389.371  
> domain.com      GET /moscow HTTP/1.1    502     6100    -       Opera/9.25 
> (Windows NT 5.0; U; en)      -       0.000-  [502]   [web_backend]   [0.000] 
> -       -       cookiecookiecookie      565449:2
> 
> 22.33.44.55     -       [30/Nov/2012:08:23:09 +0400]    1354249389.729  
> domain.com      GET /products/finance/search/ajax_in.php?region=NY HTTP/1.1   
>   502     6100    http://domain.com/products/finance/search/      Mozilla/5.0 
> (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0; MAAU; MAAU)     -       
> 0.000   -       [502]   [web_backend]   [0.000] -       -       
> cookiecookiecookie      565579:2
> 
> Возникает вопрос. От чего в $upstream_addr попадает значение "[web_backend]"?

Это случается тогда, когда на момент обработки очередного запроса
оказывается, что все серверы в апстриме неживые, и соответственно
не делается ни одной попытки соединения.  В error_log при этом
выводится ошибка "no live upstreams while connecting to upstream",
а счётчики "fails" у всех серверов апстрима сбрасываются в 0 для
быстрого восстановления.

> Разумеется, в конфиге присутствует определение астрима с именем web_backend:
>    upstream web_backend {
>         server www01 weight=2;
>         server www02 weight=3;
>    }
> 
> И проксирование в этот апстрим:
>         location ~* /branches/ {
>                 proxy_pass         http://web_backend;
>                 proxy_set_header   Host             $host;
>                 proxy_set_header   X-Real-IP        $remote_addr;
>                 proxy_set_header   X-Forwarded-For  
> $proxy_add_x_forwarded_for;
>         }

_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.