<-
Apache > HTTP Server > Documentation > Version 2.0 > Modules

Apacheское MPM perchild

Description: Мультиобработка Модуля, учитывая процессы демона, служащие запросам, которые будут назначены разнообразие различного userids
Status: MPM
Module Identifier: mpm_perchild_module
Source File: perchild.c

резюме

этот модуль не функционален. Развитие этого модуля не полно и не в настоящее время активно. Не использовать perchild если Вы не программист, желающий помогать устанавливать это.

Этот Модуль Мультиобработки (MPM) осуществляет гибридный мультипроцесс, мультипереплетенный сервер сети. Неподвижное число процессов создает нити, чтобы обращаться с запросами. Колебания в грузе обработаны, увеличиваясь или уменьшая число нитей в каждом процессе.

директивы

темы

см. также

top

How it works

единственный процесс контроля начинает число детских процессов, обозначенных NumServers директива при запуске сервера. Каждый детский процесс создает нити как определено в StartThreads директива. Индивидуальные нити тогда прислушиваются к связям и служат им, когда они прибывают.

Apache всегда пробует поддержать объединение запчасть или праздные нити сервера, которые готовы служить поступающим запросам. Таким образом, клиенты не должны ждать новых нитей, которые будут созданы. Для каждого детского процесса, Apache оценивает число праздных нитей и создает или разрушает нити, чтобы держать это число в пределах границ определенным MinSpareThreads и MaxSpareThreads . так как этот процесс очень автономен, редко необходимо изменить эти директивы от их ценностей по умолчанию. Максимальное число клиентов, которым можно служить одновременно, определено, умножая число процессов сервера, которые будут созданы ( NumServers ) максимальным числом нитей, созданных в каждом процессе ( MaxThreadsPerChild ).

в то время как родительский процесс обычно начинается как корень под Unix, чтобы связать, чтобы держать в строевой стойке 80, детские процессы и нити начаты Apache как менее - привилегированный пользователь. User и Group директивы используются, чтобы установить привилегии Apacheских детских процессов. Детские процессы должны быть в состоянии прочитать все содержание, которому будут служить, но должен иметь как немного привилегий кроме того насколько возможно. Кроме того, если suexec используется, эти директивы также устанавливают привилегии, которые будут унаследованы подлинниками CGI.

MaxRequestsPerChild средства управления, как часто сервер перерабатывает процессы, убивая старые и начиная новые.

Working with different user-IDs

perchild MPM добавляет дополнительную способность определить, что специфические процессы должны служить запросам согласно различным пользовательским удостоверениям личности. Эти пользовательские удостоверения личности могут тогда быть связаны с определенными действительными хозяевами. Вы должны использовать тот ChildPerUserID директива для каждой комбинации пользователя/группы Вы хотите управляться. Тогда Вы можете связать специфических действительных хозяев того пользователя и удостоверений личности группы.

следующий пример управляет 7 детскими процессами. Под двумя из них управляют user1 / group1 . под следующими четырьмя управляют user2 / group2 и остающийся процесс использует User и Group из главного сервера:

Global config

NumServers 7
ChildPerUserID user1 group1 2
ChildPerUserID user2 group2 4

Используя неуравновешенные числа процессов как выше полезно, если специфические действительные хозяева производят различный груз. Назначение на действительных хозяев легко сделано как в примере ниже. В заключении с примером выше следующего принимает, это server2 должен служить о дважды хитов server1 .

Example

NameVirtualHost *

<VirtualHost *>
ServerName fallbackhost
# no assignment; use fallback
</VirtualHost>

<VirtualHost *>
ServerName server1
AssignUserID user1 group1
</VirtualHost>

<VirtualHost *>
ServerName server2
AssignUserID user2 group2
</VirtualHost>

top

AssignUserID Directive

Description: связать действительного хозяина удостоверения личности группы и пользователя
Syntax: AssignUserID user-id group-id
Context: действительный хозяин
Status: MPM
Module: perchild

связать действительного хозяина определенной комбинации пользователя/группы. Запросам, к которым обращаются действительному хозяину, где эта директива появляется, будет служить процесс, бегущий с указанным пользователем и удостоверением личности группы.

удостоверение личности пользователя и группы должно быть назначено на множество детей в глобальном сервере config использование ChildPerUserID директива. См. секцию выше для a configuration example .

top

ChildPerUserID Directive

Description: определить пользовательское удостоверение личности и удостоверение личности группы для множества детских процессов
Syntax: ChildPerUserID user-id group-id num-children
Context: сервер config
Status: MPM
Module: perchild

определить пользовательское удостоверение личности и удостоверение личности группы для множества детских процессов. Третий аргумент, цифровые дети , является числом детских процессов, чтобы начаться с указанного пользователя и группы. Это делает нет представить определенное детское число. Чтобы использовать эту директиву, сервером нужно управлять первоначально как root . если Вы начнете сервер как пользователь некорня, то это будет не в состоянии измениться на меньшего привилегированного пользователя.

если общее количество детских процессов, найденных суммированием все третьи аргументы всем ChildPerUserID директивы в config файле, является меньше чем NumServers , тогда все остающиеся дети унаследуют User и Group параметры настройки от главного сервера. См. секцию выше для a configuration example .

безопасность

не устанавливать пользователь-id (или группа-id ) к root если Вы не знаете точно, что Вы делаете, и, каковы опасности.

top

MaxThreadsPerChild Directive

Description: максимальное число нитей в детский процесс
Syntax: MaxThreadsPerChild number
Default: MaxThreadsPerChild 64
Context: сервер config
Status: MPM
Module: perchild

эта директива устанавливает максимальное число нитей, которые будут созданы в каждом детском процессе. Чтобы увеличивать эту ценность вне ее неплатежа, необходимо изменить ценность ThreadLimit директива и остановка и переначало сервер.

top

NumServers Directive

Description: общее количество детей, живых в то же самое время
Syntax: NumServers number
Default: NumServers 2
Context: сервер config
Status: MPM
Module: perchild

NumServers директива определяет число детей, живых в то же самое время. Это число должно быть достаточно большим, чтобы обращаться с запросами обо всем участке. Увеличивать эту ценность вне ценности 8 , необходимо изменить ценность ServerLimit директива и остановка и переначало сервер. См. секцию выше для a configuration example .