[Sysadmins] Ограничение количества клиентов на хост для Apache ITK
Vitaly Lipatov
lav на altlinux.ru
Чт Окт 29 23:46:00 MSK 2015
Задача следующая: нужно ограничить количество процессов Apache, которые
запускаются для каждого
пользователя (ITK позволяет разных пользователей, под которыми
запускается процесс Apache), а ещё лучше —
для каждого виртуального хоста.
Базовая настройка к примеру такая:
<IfModule itk.c>
<------>StartServers 1
<------>MinSpareServers 4
<------>MaxSpareServers 20
<------>MaxClients 20
<------>MaxRequestsPerChild 15000
Но MaxClients задаёт ограничение на количество процессов, общее для
всех пользователей и хостов.
Есть параметр MaxClientsVhost, который можно указывать в конфиге сайта.
Но между ними большое отличие в поведении:
При превышении MaxClients Apache просто не реагирует на коннекты к
нему, таким образом накапливается очередь подключений,
и пользователи при перегрузке испытывают замедление реакции сайта.
А ограничение по MaxClientsVhost сразу возвращает 503 при достижении
предела подключений. Что вовсе не желательно, потому
что для клиента выглядит как то, что сайт работает быстро, но иногда
вместо страницы — ошибка.
Может быть есть всем известное решение, которое я не знаю?
Другой вариант — это научить nginx ошибку 503 не передавать клиенту, а
ждать и пытаться получить от бэкенда более корректный ответ.
--
С уважением,
Виталий Липатов,
Etersoft
Подробная информация о списке рассылки Sysadmins