Влияние пользовательских ресурсов на конфигурацию web-серверов в ISPmanager 5 Business

Материал из ISPWiki
Перейти к: навигация, поиск

Введение

При указании определенных значений в ресурсах пользователя, мы определенным образом настраиваем 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, либо указать в значении параметра 0, если для нужд автоматизации вам не подходит такой вариант расчета этого параметра. В случае нулевого значения коэффициента max_execution_time в конфигурации Apache указываться не будет.