Влияние пользовательских ресурсов на конфигурацию web-серверов в ISPmanager 5 Business
Введение
При указании определенных значений в ресурсах пользователя, мы определенным образом настраиваем web-серверы в соответствии с указанными значения. Данная статья о том, какие именно ресурсы влияют на определенные параметры конфигурации web-серверов.
Конфигурация Nginx
На конфигурацию Nginx оказывает влияние ресурс "Одновременных соединений на сессию", который позволяет указать максимальное количество одновременных соединений с конкретного IP-адреса, которое будет обрабатываться web-сервером Nginx. При применении конкретного значения лимита происходит следующее:
1. В файле ispresources.conf директории конфигурации nginx (которая определена в конфиге панели как path nginx-conf.d) создается конфигурация зоны распределяемой памяти nginx c ключом $binary_remote_addr и именем, соответствующем имени пользователя
limit_conn_zone $binary_remote_addr zone={ имя пользователя }:{ 8 * разрядность ОС * значение ресурса "Одновременных соединений на сессию" }k;
Например, для пользователя user1 со значением ресурса "Одновременных соединений на сессию" 10 будет создана следующая зона распределяемой памяти:
limit_conn_zone $binary_remote_addr zone=user1:640k;
2. В директории конфигурации web-доменов (которая определена в конфиге панели как path nginx-vhosts-resources) создается директория с именем пользователя, в которой будет создан файл connlimit.conf, в котором определено максимальное число соединений для одного значения ключа зоны памяти, описанной выше:
limit_conn { имя зоны = имя пользователя } { значение ресурса "Одновременных соединений на сессию" };
Например, для пользователя user1 со значением ресурса "Одновременных соединений на сессию" 10, описанного выше, будет создана запись
limit_conn user1 10;
Сформированный файл включается в конфигурацию всех виртуальных серверов (server) Nginx пользователя, для которого задано ограничение.
Конфигурация PHP-FPM
Конфигурация пула PHP-FPM зависит от содержимого файла-шаблона пользовательского пула. Файл пула расположен по пути:
/usr/local/mgr5/etc/templates/fpm.conf
При применении настроек пользователя значение параметров пула, описанных ниже, будет получено из шаблона. В случае, если значение параметра в шаблоне не отвечает перечисленным требованиям, новое значение будет вычислено в зависимости от значения ресурса "Процессов пользователя"
На конфигурацию PHP-FPM влияет значение ресурса "Процессов пользователя", позволяющее ограничить пользователя по количеству запускаемых им процессов.
В конфигурации пользовательского пула PHP-FPM применение этого ограничение приводит к изменению следующих параметров:
pm.max_children = { значение ресурса "Процессов пользователя" } pm.min_spare_servers = { не больше значения "pm.max_children" } pm.max_spare_servers = { не больше значения "pm.max_children" } pm.start_servers = { не больше значения "pm.min_spare_servers" и не больше значения "pm.max_spare_servers"}
Например, для пользователя user1 со значением ресурса "Процессов пользователя" 7 будет определена следующая конфигурация пула:
pm.max_children = 7 pm.start_servers = 1 pm.min_spare_servers = 1 pm.max_spare_servers = 5
Значение по умолчанию для параметра pm.max_children — 5, оно применяется, если в настройках пользователя параметру "Процессов пользователя" присвоено значение "не ограничено" и не определено значение в шаблоне
Конфигурация Apache
Ресурсы, влияющие на конфигурацию каждого www-домена
На конфигурацию каждого www-домена влияют следующие ресурсы:
- "Обработчиков Apache", указывает максимальное количество обработчиков web-сервера Apache, обслуживающих WWW-домен пользователя
- "Процессорное время", позволяет ограничить использование CPU пользовательскими процессами
- "Оперативная память", позволяет ограничить пользователя по объему используемой им оперативной памяти
- "Процессов пользователя", позволяет ограничить пользователя по количеству запускаемых им процессов
Значения данных ресурсов влияют на формирование файла vhost.conf, создаваемого в директории с именем пользователя, находящейся в директории конфигурации ресурсов Apache (в конфиге панели path apache-vhosts-resources). Данный файл включается в конфигурацию каждого виртуального хоста (VirtualHost) конкретного пользователя. Если какой-либо из описанных ресурсов определен, он будет указан в качестве соответствующего значения в описанном файле:
* *MaxClientsVHost { значение ресурса "Обработчиков Apache" }*
* *RLimitCPU { значение ресурса "Процессорное время" }*
* *RLimitMEM { значение ресурса "Оперативная память" * 1024 * 1024 }*
* *RLimitNPROC { значение ресурса "Процессов пользователя" }*
Ресурсы, влияющие на конфигурацию PHP как модуля Apache
На конфигурацию www-домена, использующего PHP в режиме "PHP как модуль Apache" влияют следующие ресурсы:
- "Процессорное время", позволяет ограничить использование CPU пользовательскими процессами
- "Оперативная память", позволяет ограничить пользователя по объему используемой им оперативной памяти
Значения данных ресурсов влияют на формирование файла php5_module.conf, создаваемого в директории с именем пользователя, находящейся в директории конфигурации ресурсов Apache (в конфиге панели path apache-vhosts-resources). Данный файл включается в конфигурацию каждого виртуального хоста (VirtualHost), использующего PHP как модуль Apache, конкретного пользователя. Если какой-либо из описанных ресурсов определен, он будет указан в качестве соответствующего значения в описанном файле:
* *php_admin_value memory_limit { значение ресурса "Оперативная память" }*
* *php_admin_value max_execution_time { значение ресурса "Процессорное время" *_коэффициент_}*
Коэффициент при расчете параметра max_execution_time определяется значением параметра конфигурации панели MaxExecutionTimeRatio (значение по умолчанию: 1). Максимальное время выполнения запросов PHP не связано напрямую с ограничением процессорного времени, поэтому мы реализовали возможность повлиять на формирование этого значения. Вы можете подобрать оптимальный коэффициент для параметра MaxExecutionTimeRatio, либо указать в значении параметра , если для нужд автоматизации вам не подходит такой вариант расчета этого параметра. В случае нулевого значения коэффициента max_execution_time в конфигурации Apache указываться не будет.