несколько fastcgi серверов

Alex Vorona voron at amhost.net
Sun Aug 31 21:19:25 MSD 2008


31.08.2008 16:58, Gena Makhomed wrote:
> On Sunday, August 31, 2008 at 16:01:52, Alex Vorona wrote:
> AV> если не делать accept - будет расти backlog и всё,
> AV> запросы не будут перенаправляться на другие бекенды.
> 
> зачем перенаправлять запросы на другие backend`ы,
> если там примерно такая же ситуация с нагрузкой?
если такая же, то смысла нет
> 
> AV> Как я понимаю, хочется же дать знать nginx'у,
> AV> что больше запросов на этот бекенд пока не надо посылать.
> 
> в результате еще больше вырастет нагрузка на остальные backend`ы,
> они также с ней не смогут справиться и перейдут в состояние "failed".
> 
> через короткий промежуток времени живых backend`ов вообще не останется.
> все клиенты будут получать на свои запросы 503 ошибку. DOS-атака удалась.
от висящих в backlog коннектов, которые не accept'ятся, разве будет легче? Клиенты(все) не получат 
ничего  хорошего в любом случае, если скорость поступления входящих запросов превышает скорость их 
обработки. Только в случае прохождения всех запросов через backlog бекенда клиент должен ждать 
больше, и может не дождаться. В случае 503 и max_fails=0 nginx будет перебирать все бекенды, 
возвращая части клиентов 503, а остальным предоставляя нормальный сервис без ожидания запроса в 
backlog бекенда, как только осободившийся бекенд вместо 503 взял запрос в работу. Если от перебора 
со стороны nginx бекенды не загнутся, конечно :)
> 
> AV> Выдача ошибки, по которой nginx пойдёт к следующему бекенду и забудет
> AV> про перегруженней бекенд на нужное время - вполне мне кажется решением.
> 
> это может быть решением, если один запрос обрабатывается 20-30 секунд,
> и у сервера есть в наличии большое количество простаивающих backend`ов
> 
> если backend`ы single-threaded, - для этого случая есть модуль nginx-upstream-fair
> необработанные клиентские запросы будут ожидать, пока освободится какой-то backend.
> 






More information about the nginx-ru mailing list