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
|