ПРОЕКТЫ 


  АРХИВ 


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: nginx user



On 15.05.2010 17:30, Anton Bessonov wrote:

master-процесс порождает worker-процессы с помощью fork, так что
лишнего использования памяти в больших количествах тут тоже не будет.

А как это относится к дискуссии? (Или Вы на моей стороне? :D)

это ответ на "Я всего лишь хочу избежать множество мастеров..."

более экономное использование ресурсов машины - это есть основная
причина использования в качестве веб-сервера nginx, а не apache.

если у вас 100 пользователей и вы каждому дадите свой собственный nginx
- то оверхед администрирования будет == 0 : они будут делать все сами.

Если им выдать возможность редактировать конфиг, что в свою очередь
нужно будет проверять автоматически, чего у меня на руках нет. В
дополнение - возможность HUP'а для каждой инстанции.

если каждый из пользователей будет запускать nginx под своим uid`ом -
он самостоятельно сможет отправить "своему" "nginx-master" сигнал HUP.

а вот что будет в случае реализации вашего предложения:

если например, есть 100 пользователей, каждому из них выделить worker
который работает под его UID и есть только один master-процесс,
то если послать сигнал HUP этому единственному мастер-процессу,
он при этом будет релоадить все воркеры для всех пользователей.
(потому что с помощью сигнала передается только 1 бит информации)

а при релоаде nginx - worker не завершает свою работу до тех пор,
пока не обслужит запросы всех клиентов. в результате - появляется
возможность достаточно легко устроить DoS-атаку на такой сервер,
создав большое количество "очень долго висящих" worker-процессов,
которые остаются после каждого reload`а и продолжают отдавать ответ.

зная nginx reload rate, размер worker`а и количество свободной памяти -
несложно прикинуть через какое количество времени закончится вся память.

при использовании двухуровневой схемы (то что возможно уже сейчас):

http client <=> frontend (root) nginx <=> backend (user) nginx

даже при частых reload`ах пользовательских nginx`ов -
отсутствует возможность устроить DoS-атаку на сервер
с помощью очень медленных http клиентов.

--
Best regards,
 Gena


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


 




Copyright © Lexa Software, 1996-2009.