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