ПРОЕКТЫ 


  АРХИВ 


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: Ошибки в логах: no live upstream s while connecting to upstream



Hello!

On Thu, Aug 18, 2011 at 10:14:02AM -0400, toootooo wrote:

> Доброе время суток!
> 
> Конфигурация сети следующая: 
>   1. frontand nginx 
>   2. backend тоже 2 -а nginx сервера,
> 
> Иак вот, на первом  сервере в логе часто,
> валятся ошибки такого вида:
> 
> 2011/08/18 10:07:32 [error] 23884#0: *857809852 no live upstreams while
> connecting to upstream, client: <client_ip> server: <backendN-name>,
> request: "GET /./Packages.bz2 HTTP/1.1", upstream:
> "http://upstreams/./Packages.bz2";, host: "somehost"

Это значит, что оба бекенда признаны мёртвыми из-за ранее 
случившихся ошибок.  Можно потюнить max_fails/fail_timeout[1], но 
вообще говоря вам надо решать проблему с бекендами: разбираться, 
почему сыпятся ошибки, и делать так чтобы их не было.

[1] http://sysoev.ru/nginx/docs/http/ngx_http_upstream.html#server

>   конфиг по-умолчанию frontend-а 
>   upstream {
>      backend1_IP:90;
>      backend2_IP:120;
>   }
>     server {
>         listen     frontend-IPn:80;
>         server_name  backendN-name;
>         location / {
>             proxy_pass  http://upstreams;
>             proxy_set_header  Host       $host;
>             proxy_set_header  X-Forwarded-For  $remote_addr;
>         }   
>     }
> 
> 
> конфигурация backend:
> 
>     server {
>         listen       backend1_IP:90;
>         server_name  localhost;
>         location / {
>             perl  ncrewrite::handler2;

А соответствующий обработчик случайно не занимается какими-либо 
блокирующимися операциями (e.g. ходит в базу)?  Если занимается - 
то эффект понятен: на время соответствующей операции блокируется 
весь рабочий процесс целиком, все запросы висят и некоторые 
таймаутятся...  В общем, не надо так делать.  А если делать - то 
очёнь тщательно тюнить количество рабочих процессов и 
распределение запросов между ними (как минимум - отключать 
accept_mutext).

>         }
>     }
> 
> Что посоветуете сделать? 
> хотелось бы, конечно, между ними frontend <-->
> backend http/1.1, но nginx не поддерживает с
> апстримом 1.1....

С патчами - поддерживает (тут пробегало), но врядли вам это поможет.

Maxim Dounin

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


 




Copyright © Lexa Software, 1996-2009.