[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