ПРОЕКТЫ 


  АРХИВ 


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: несколько fastcgi серверов



Valery Kholodkov <valery+nginxru@...> writes:

> 
> Как я понимаю, нужно крутить max_fails и fail_timeout в директиве 
> upstream/server:
> 
> http://www.sysoev.ru/nginx/docs/http/ngx_http_upstream.html#server
> 
> убедившись, что fastcgi_next_upstream содержит слово timeout.

Валерий -- спасибо, я попробую. Я искал на интернете но не нашел (детального)
описания как nginx работает с fastcgi серверами. Я читал про load-balance и
другое но все равно многое непонятно.

Gena, мои fastcgi на Java, я не нашел никого другого кто бы это делал, но мне
нужна Java, я может позже даже их на С перепишу.

Я буду пробовать, но если можно, я опишу как я понимаю я должен мои fastcgi
сделать, пожалуйста подтвердите если я понимаю это правильно:

1. Когда я принимаю запрос от nginx в моем fastcgi сервере (accept на server
socket) я отдаю его на обработку другому thread так что я могу принимать другие
запросы от nginx.
2. nginx будет посылать запросы всем fastcgi серверам по очереди, каждый сервер
может обрабатывать много запросов одновременно.
3. Если какой-то fastcgi сервер решил что он уже перегружен (слишком много
запросов он еще не ответил), то он может послать nginx обратно ошибку (например
503) и тогда nginx его исключит на следуюшие N секунд как я задал в 
fail_timeout.
4. Так я могу гарантировать что запросы передаются только серверам которые я не
квалифицировал как слишком занятые (если все серверы заняты то это уже моя
проблема).

Правильно ли я это все понял?

У меня был еще вопрос если nginx может хранить соединение (socket) с fastcgi
сервером открытым вместо того чтобы открывать новое для каждого запроса?

Спасибо большое,
Кирилл Хазановский

 
> КириллХазановский wrote:
> > Я сконфигурировал nginx использовать два fastcgi сервера
> через upstream и
> > fastcgi_pass. Все работает отлично, запросы посылаются
> обоим серверам через раз,
> > как и ожидается.
> > 
> > Теперь я вставил длинную задержку в один из fastcgi
> серверов, когда nginx его
> > вызывает, этот сёрвер спит 30 секунд.
> > 
> > Я думал что запросы тому-же location которое
> перенаправляет их моим fastcgi 
> > серверам будут продолжать обрабатываться вторым
> сервером который не спит и
> > отвечает моментально.
> > 
> > Но что я вижу это что все запросы этому location висят и
> ждут пока тот fastcgi
> > сервер который "спит" проснется. похоже что все location
> заблокировано если один
> > из fastcgi серверов "занят".
> > 
> > Я не знаю если я что-то недоконфигурировал или nginx так
> работает? 
> > Я конечно имел в виду использоать несколько fastcgi
> серверов так что если один
> > занят тогда стальные могут обрабатывать запросы
> тому-же location.
> 







 




Copyright © Lexa Software, 1996-2009.