nginx user
Gena Makhomed
gmm на csdoc.com
Сб Май 15 21:12:19 MSD 2010
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