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

Apacheское MPM Общие Директивы

Description: собрание директив, которые осуществлены больше чем одним модулем мультиобработки (MPM)
Status: MPM

директивы

top

AcceptMutex Directive

Description: метод, что Apacheские использования, чтобы преобразовать в последовательную форму многократных детей, принимающих запросы на гнездах сети
Syntax: AcceptMutex Default| method
Default: AcceptMutex Default
Context: сервер config
Status: MPM
Module: leader , perchild , prefork , threadpool , worker

AcceptMutex директивы заставляют метод что Apacheские использования преобразовывать в последовательную форму многократных детей, принимающих запросы на гнездах сети. До Apacheа 2.0, метод был выбираемым только в, собирают время. Оптимальный метод, чтобы использовать - высоко иждивенец платформы и архитектура. Для дальнейших деталей, см. performance tuning документация.

если эта директива собирается Default , тогда собирание разового отобранного неплатежа будет использоваться. Другие возможные методы упомянуты ниже. Отметьте, что не все методы доступны на всех платформах. Если метод будет определен, который не доступен, то сообщение будет написано ошибочной регистрации, перечисляющей доступные методы.

flock
использования flock(2) запрос системы захватить файл, определенный LockFile директива.
fcntl
использования fcntl(2) запрос системы захватить файл, определенный LockFile директива.
posixsem
использования POSIX совместимые семафоры, чтобы осуществить mutex.
pthread
использования POSIX mutexes как осуществлено Нитями POSIX (PThreads) спецификация.
sysvsem
семафоры SySV-стиля использований, чтобы осуществить mutex.

если Вы хотите узнать собирающееся время выбранный неплатеж для вашей системы, Вы можете установить ваш LogLevel к debug . тогда неплатеж AcceptMutex будет написан в ErrorLog .

top

BS2000Account Directive

Description: определить непривилегированный счет на машинах BS2000
Syntax: BS2000Account account
Context: сервер config
Status: MPM
Module: perchild , prefork
Compatibility: только доступный для машин BS2000

BS2000Account директива доступна для хозяев BS2000 только. Это должно использоваться, чтобы определить номер счета для непривилегированного Apacheского пользователя сервера (который формировался, используя User директива). Это требуется BS2000 POSIX подсистема (чтобы изменить основную окружающую среду задачи BS2000, выполняя подвход в систему), чтобы препятствовать подлинникам CGI получать доступ к ресурсам привилегированного счета, который начал сервер, обычно SYSROOT .

отметить

только один BS2000Account директива может использоваться.

см. также

top

CoreDumpDirectory Directive

Description: справочник, где Apache пытается переключить перед демпингом ядра
Syntax: CoreDumpDirectory directory
Default: See usage for the default setting
Context: сервер config
Status: MPM
Module: beos , leader , mpm_winnt , perchild , prefork , threadpool , worker

это управляет справочником, к которому Apache пытается переключить перед демпингом ядра. Неплатеж находится в ServerRoot справочник, однако так как это не должно быть перезаписываемым пользователем пробеги сервера как, основные свалки, не будет обычно писаться. Если Вы хотите основную свалку для отладки, Вы можете использовать эту директиву, чтобы поместить это в различное местоположение.

Основные Свалки на Linux

если Apache начинается как корень и выключатели другому пользователю, ядру Linux повреждает удалить сердцевину свалок, даже если справочник перезаписываем для процесса. Апач (2.0.46 и позже) повторно позволяет основные свалки на Linux 2.4 и вне, но только если Вы явно формируете a CoreDumpDirectory .

top

EnableExceptionHook Directive

Description: позволяет крюк, который управляет тренерами исключения после крушения
Syntax: EnableExceptionHook On|Off
Default: EnableExceptionHook Off
Context: сервер config
Status: MPM
Module: leader , perchild , prefork , threadpool , worker
Compatibility: доступный в версии 2.0.49 и позже

для соображений безопасности эта директива только доступна, если сервер формировался с --enable-exception-hook выбор. Это позволяет крюк, который позволяет внешним модулям включать и сделать кое-что после того, как ребенок потерпел крах.

есть уже два модуля, mod_whatkilledus и mod_backtrace это использует этот крюк. Пожалуйста взгляните на Джефа Троика EnableExceptionHook site за дополнительной информацией о них.

top

Group Directive

Description: группа, под которой сервер ответит на запросы
Syntax: Group unix-group
Default: Group #-1
Context: сервер config
Status: MPM
Module: beos , leader , mpmt_os2 , perchild , prefork , threadpool , worker
Compatibility: только действительный в глобальном сервере config начиная с Apacheа 2.0

Group директива устанавливает группу, под которой сервер ответит на запросы. Чтобы использовать эту директиву, сервером нужно управлять первоначально как root . если Вы начнете сервер как пользователь некорня, то это будет не в состоянии измениться на указанную группу, и вместо этого продолжит бежать как группа оригинального пользователя. группа Unix является одним из:

название группы
обращается к данной группе по имени.
# сопровождаемый числом группы.
обращается к группе ее числом.

Example

Group www-group

рекомендуется, чтобы Вы настроили новую группу определенно чтобы управлять сервером. Некоторые admins используют пользователя nobody , но это не всегда возможно или желательно.

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

не устанавливать Group (или User ) к root если Вы не знаете точно, что Вы делаете, и, каковы опасности.

специальное примечание: Использование этой директивы в <VirtualHost> больше не поддержан. Формировать ваш сервер для suexec использование SuexecUserGroup .

отметить

хотя Group директива присутствует в beos и mpmt_os2 MPMs, это - фактически не там и только существует по причинам совместимости.

top

Listen Directive

Description: IP обращается и порты, которые сервер слушает
Syntax: Listen [ IP-address :] portnumber
Context: сервер config
Status: MPM
Module: beos , leader , mpm_netware , mpm_winnt , mpmt_os2 , perchild , prefork , threadpool , worker
Compatibility: необходимая директива начиная с Apacheа 2.0

Listen директива инструктирует Apacheа слушать только определенные IP адреса или порты; по умолчанию это отвечает на запросы на всех IP интерфейсах. Listen является теперь необходимой директивой. Если это будет в config файле, то сервер будет не в состоянии начаться. Это - изменение от предыдущих версий Apacheа.

Listen директива говорит серверу принимать поступающие запросы на указанном порту или комбинации адреса-и-порта. Если только число порта определено, сервер слушает данный порт на всех интерфейсах. Если IP адрес будет даваться так же как порт, то сервер будет слушать на данном порту и интерфейсе.

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

например, чтобы сделать сервер, чтобы принять связи и на порту 80 и на порту 8000, использование:

Listen 80
Listen 8000

заставить сервер принять связи на двух указанных интерфейсах и числах порта, использовании

Listen 192.170.2.1:80
Listen 192.170.2.5:8000

адреса IPv6 должны быть окружены в квадратных скобках, как в следующем примере:

Listen [2001:db8::a00:20ff:fea7:ccea]:80

ошибочное условие

многократный Listen директивы для того же самого адреса ip и порта приведут Address already in use ошибочное сообщение.

см. также

top

ListenBackLog Directive

Description: максимальная длина очереди надвигающихся связей
Syntax: ListenBacklog backlog
Default: ListenBacklog 511
Context: сервер config
Status: MPM
Module: beos , leader , mpm_netware , mpm_winnt , mpmt_os2 , perchild , prefork , threadpool , worker

максимальная длина очереди надвигающихся связей. Вообще никакая настройка не необходима или желаемый, однако на некоторых системах, желательное увеличить это, когда под TCP SYN затопляют нападение. См. неудовлетворенный параметр к listen(2) запрос системы.

это будет часто ограничиваться меньшим числом операционной системой. Это изменяется от РТА до РТА. Также отметьте, что много OSE не используют точно, что определено как отставание, но использование число, основанное на (но обычно больший чем), что установлено.

top

LockFile Directive

Description: местоположение принимающегося преобразования в последовательную форму захватывает файл
Syntax: LockFile filename
Default: LockFile logs/accept.lock
Context: сервер config
Status: MPM
Module: leader , perchild , prefork , threadpool , worker

LockFile директива устанавливает дорожку к используемому lockfile, когда Apache используется с AcceptMutex ценность также fcntl или flock . эту директиву нужно обычно оставлять по ее ценности по умолчанию. Главная причина для того, чтобы изменять это - то, если logs справочник - установленная NFS, с тех пор lockfile должен быть сохранен на местном диске . ИЗОДРОМНЫЙ С ПРЕДВАРЕНИЕМ из главного процесса сервера автоматически приложен к имени файла.

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

лучше избежать помещение этого файла в мировом перезаписываемом справочнике, типа /var/tmp потому что кто - то мог создать опровержение нападения обслуживания и препятствовать серверу начинаться, создавая lockfile с тем же самым названием как тот, который сервер будет пробовать создать.

см. также

top

MaxClients Directive

Description: максимальное число детских процессов, которые будут созданы, чтобы служить запросам
Syntax: MaxClients number
Default: See usage for details
Context: сервер config
Status: MPM
Module: beos , leader , prefork , threadpool , worker

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

для непереплетенных серверов ( то есть. , prefork ), MaxClients переводит на максимальное число детских процессов, которые будут начаты, чтобы служить запросам. Ценность по умолчанию 256 ; чтобы увеличивать это, Вы должны также поднять ServerLimit .

для переплетенных и гибридных серверов ( например. beos или worker ) MaxClients ограничивает общее количество нитей, которые будут доступны, чтобы служить клиентам. Ценность по умолчанию для beos 50 . для гибридного MPMs ценность по умолчанию 16 ( ServerLimit ) умноженный ценностью 25 ( ThreadsPerChild ). Поэтому, чтобы увеличиться MaxClients к ценности, которая требует больше чем 16 процессов, Вы должны также поднять ServerLimit .

top

MaxMemFree Directive

Description: максимальное количество памяти, которую главному лицу, ведующему распределением разрешают держать без запроса free()
Syntax: MaxMemFree KBytes
Default: MaxMemFree 0
Context: сервер config
Status: MPM
Module: beos , leader , mpm_netware , prefork , threadpool , worker , mpm_winnt

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

top

MaxRequestsPerChild Directive

Description: предел на числе запросов, что индивидуальный детский сервер будет обращаться в течение его жизни
Syntax: MaxRequestsPerChild number
Default: MaxRequestsPerChild 10000
Context: сервер config
Status: MPM
Module: leader , mpm_netware , mpm_winnt , mpmt_os2 , perchild , prefork , threadpool , worker

MaxRequestsPerChild директива устанавливает предел на числе запросов, что индивидуальный детский процесс сервера будет обращаться. После MaxRequestsPerChild запросы, детский процесс умрет. Если MaxRequestsPerChild 0 , тогда процесс никогда не будет истекать.

различные ценности по умолчанию

ценность по умолчанию для mpm_netware и mpm_winnt 0 .

урегулирование MaxRequestsPerChild к пределу отличному от нуля имеет два благоприятных воздействия:

отметить

для KeepAlive запросы, только первый запрос подсчитан к этому пределу. В действительности, это изменяет поведение ограничить число связи в ребенка.

top

MaxSpareThreads Directive

Description: максимальное число праздных нитей
Syntax: MaxSpareThreads number
Default: See usage for details
Context: сервер config
Status: MPM
Module: beos , leader , mpm_netware , mpmt_os2 , perchild , threadpool , worker

максимальное число праздных нитей. Различные MPMs имеют дело с этой директивой по-другому.

для perchild неплатеж MaxSpareThreads 10 . это MPM контролирует число праздных нитей на в-ребенка основании. Если будут слишком много праздных нитей в том ребенке, то сервер начнет убивать нити в пределах того ребенка.

для worker , leader и threadpool неплатеж MaxSpareThreads 250 . Эти MPMs имеют дело с праздными нитями на основании всего сервера. Если есть слишком много праздных нитей в сервере тогда, детские процессы убиты, пока число праздных нитей не меньше чем это число.

для mpm_netware неплатеж MaxSpareThreads 100 . так как это MPM управляет единственным процессом, запасной счет нити также всего сервера.

beos и mpmt_os2 работать подобные mpm_netware . неплатеж для beos MaxSpareThreads 50 . для mpmt_os2 ценность по умолчанию 10 .

ограничения

диапазон MaxSpareThreads ценность ограничена. Апач исправит данную ценность автоматически согласно следующим правилам:

см. также

top

MinSpareThreads Directive

Description: минимальное число праздных нитей, доступных обращаться с шипами запроса
Syntax: MinSpareThreads number
Default: See usage for details
Context: сервер config
Status: MPM
Module: beos , leader , mpm_netware , mpmt_os2 , perchild , threadpool , worker

минимальное число праздных нитей, чтобы обращаться с шипами запроса. Различные MPMs имеют дело с этой директивой по-другому.

perchild использует неплатеж MinSpareThreads 5 и мониторы число праздных нитей на в-ребенка основании. Если будут нет достаточно многих праздных нитей в том ребенке, то сервер начнет создавать новые нити в пределах того ребенка. Таким образом, если Вы устанавливаете NumServers к 10 и a MinSpareThreads ценность 5 , Вы будете иметь по крайней мере 50 праздных нитей на вашей системе.

worker , leader и threadpool использовать неплатеж MinSpareThreads 75 и дело с праздными нитями на основании всего сервера. Если нет достаточно многих праздных нитей в сервере тогда, детские процессы созданы, пока число праздных нитей не больше чем число.

mpm_netware использует неплатеж MinSpareThreads 10 и, так как это - MPM единственного процесса, следы это на основаниях всего сервера.

beos и mpmt_os2 работать подобные mpm_netware . неплатеж для beos MinSpareThreads 1 . для mpmt_os2 ценность по умолчанию 5 .

см. также

top

PidFile Directive

Description: файл, где сервер делает запись удостоверения личности процесса демона
Syntax: PidFile filename
Default: PidFile logs/httpd.pid
Context: сервер config
Status: MPM
Module: beos , leader , mpm_winnt , mpmt_os2 , perchild , prefork , threadpool , worker

PidFile директива устанавливает файл, к которому сервер делает запись процесса id демона. Если имя файла не абсолютно тогда, это, как предполагают, является относительно ServerRoot .

Example

PidFile /var/run/apache.pid

часто полезно быть в состоянии послать серверу сигнал, так, чтобы это закрыло и затем повторно открыло ErrorLog и TransferLog , и перечитывает его файлы конфигурации. Это сделано, посылая SIGHUP (убейте-1), сигнал к процессу id перечисленный в PidFile .

PidFile является подчиненным тем же самым предупреждениям о размещении файла системного журнала и security .

отметить

на Apacheские 2 рекомендуют использовать только apachectl подлинник для того, чтобы (заново) начинаться или останавливать сервер.

top

ReceiveBufferSize Directive

Description: TCP получают буферный размер
Syntax: ReceiveBufferSize bytes
Default: ReceiveBufferSize 0
Context: сервер config
Status: MPM
Module: beos , leader , mpm_netware , mpm_winnt , mpmt_os2 , perchild , prefork , threadpool , worker

сервер установит TCP, получают буферный размер к числу определенных байтов.

если установлено в ценность 0 , сервер будет использовать неплатеж РТА.

top

ScoreBoardFile Directive

Description: местоположение файла имело обыкновение хранить данные координации для детских процессов
Syntax: ScoreBoardFile file-path
Default: ScoreBoardFile logs/apache_status
Context: сервер config
Status: MPM
Module: beos , leader , mpm_winnt , perchild , prefork , threadpool , worker

Apache использует табло, чтобы общаться между его родителями и детскими процессами. Немного архитектуры требует, чтобы файл облегчил эту коммуникацию. Если файлу будут оставлять неуказанные, Apacheские первые попытки создать табло полностью в памяти (использующий анонимную совместно используемую память) и, подводя это, то попытается создать файл на диске (использующий совместно используемую память на основе файла). Определение этой директивы заставляет Apacheа всегда создавать файл на диске.

Example

ScoreBoardFile /var/run/apache_status

совместно используемая память на основе файла полезна для имеющих отношение к третьей стороне заявлений, которые требуют прямого доступа к табло.

если Вы используете a ScoreBoardFile тогда Вы можете видеть улучшенную скорость, помещая это в диск RAM. Но будьте осторожны, что Вы учитывают те же самые предупреждения о размещении файла системного журнала и security .

см. также

top

SendBufferSize Directive

Description: размер буфера TCP
Syntax: SendBufferSize bytes
Default: SendBufferSize 0
Context: сервер config
Status: MPM
Module: beos , leader , mpm_netware , mpm_winnt , mpmt_os2 , perchild , prefork , threadpool , worker

сервер установит TCP, посылают буферный размер числу определенных байтов. Очень полезный увеличивать прошлые стандартные неплатежи РТА на высокой скорости высокое время ожидания ( то есть. , 100ms или так, типа трансконтинентальных быстрых труб).

если установлено в ценность 0 , сервер будет использовать неплатеж РТА.

top

ServerLimit Directive

Description: верхний предел на конфигурируемом числе процессов
Syntax: ServerLimit number
Default: See usage for details
Context: сервер config
Status: MPM
Module: leader , perchild , prefork , threadpool , worker

для prefork MPM, эта директива устанавливает максимальную формируемую ценность для MaxClients для целой жизни Apacheского процесса. Для worker MPM, эта директива в комбинации с ThreadLimit устанавливает максимальную формируемую ценность для MaxClients для целой жизни Apacheского процесса. Любые попытки изменять эту директиву в течение переначала будут игнорироваться, но MaxClients может быть изменен в течение переначала.

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

с prefork MPM, используйте эту директиву, только если Вы должны установить MaxClients выше чем 256 (неплатеж). Не устанавливайте ценность этой директивы немного выше чем, что Вы могли бы хотеть установить MaxClients к.

с worker , leader и threadpool использовать эту директиву только если ваш MaxClients и ThreadsPerChild параметры настройки требуют больше чем 16 процессов сервера (неплатеж). Не устанавливайте ценность этой директивы немного выше чем число процессов сервера, требуемых тем, для чего Вы можете хотеть MaxClients и ThreadsPerChild .

с perchild MPM, используйте эту директиву, только если Вы должны установить NumServers выше чем 8 (неплатеж).

отметить

есть твердый предел ServerLimit 20000 собранный в сервер. Это предназначено, чтобы избежать противных эффектов, вызванных опечатками.

см. также

top

StartServers Directive

Description: число детских процессов сервера, созданных при запуске
Syntax: StartServers number
Default: See usage for details
Context: сервер config
Status: MPM
Module: leader , mpmt_os2 , prefork , threadpool , worker

StartServers директива устанавливает число детских процессов сервера, созданных на запуске. Поскольку числом процессов динамически управляют в зависимости от груза, есть обычно небольшая причина приспособить этот параметр.

ценность по умолчанию отличается от MPM до MPM. Для leader , threadpool и worker неплатеж StartServers 3 . для prefork неплатежи к 5 и для mpmt_os2 к 2 .

top

StartThreads Directive

Description: число нитей, созданных на запуске
Syntax: StartThreads number
Default: See usage for details
Context: сервер config
Status: MPM
Module: beos , mpm_netware , perchild

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

для perchild неплатеж StartThreads 5 и эта директива отслеживает число нитей в процесс при запуске.

для mpm_netware неплатеж StartThreads 50 и, с тех пор есть только единственный процесс, это - общее количество нитей, созданных при запуске, чтобы служить запросам.

для beos неплатеж StartThreads 10 . это также отражает общее количество нитей, созданных при запуске, чтобы служить запросам.

top

ThreadLimit Directive

Description: устанавливает верхний предел на конфигурируемом числе нитей в детский процесс
Syntax: ThreadLimit number
Default: See usage for details
Context: сервер config
Status: MPM
Module: leader , mpm_winnt , perchild , threadpool , worker
Compatibility: доступный для mpm_winnt в Apacheе 2.0.41 и позже

эта директива устанавливает максимальную формируемую ценность для ThreadsPerChild для целой жизни Apacheского процесса. Любые попытки изменять эту директиву в течение переначала будут игнорироваться, но ThreadsPerChild может быть изменен в течение перезапуска к ценности этой директивы.

специальная забота должна быть взята, используя эту директиву. Если ThreadLimit собирается ценность намного выше чем ThreadsPerChild , дополнительная неиспользованная совместно используемая память будет ассигнована. Если оба ThreadLimit и ThreadsPerChild собираются ценности выше, чем система может обращаться, Apache, возможно, не начинается, или система могла стать непостоянной. Не устанавливайте ценность этой директивы немного выше чем ваше самое большое предсказанное урегулирование ThreadsPerChild для потока, которым управляют Apacheа.

ценность по умолчанию для ThreadLimit 1920 когда используется с mpm_winnt и 64 когда используется с другими.

отметить

есть твердый предел ThreadLimit 20000 (или ThreadLimit 15000 с mpm_winnt ) собранный в сервер. Это предназначено, чтобы избежать противных эффектов, вызванных опечатками.

top

ThreadsPerChild Directive

Description: число нитей, созданных каждым детским процессом
Syntax: ThreadsPerChild number
Default: See usage for details
Context: сервер config
Status: MPM
Module: leader , mpm_winnt , threadpool , worker

эта директива устанавливает число нитей, созданных каждым детским процессом. Ребенок создает эти нити при запуске и никогда не создает больше. Используя MPM как mpm_winnt , где есть только один детский процесс, это число должно быть высоко достаточно, чтобы обращаться со всем грузом сервера. Используя MPM как worker , где есть многократные детские процессы, общее количество число нитей должно быть высоко достаточно, чтобы обращаться с общим грузом на сервере.

ценность по умолчанию для ThreadsPerChild 64 когда используется с mpm_winnt и 25 когда используется с другими.

top

User Directive

Description: userid, под которым сервер ответит на запросы
Syntax: User unix-userid
Default: User #-1
Context: сервер config
Status: MPM
Module: leader , perchild , prefork , threadpool , worker
Compatibility: только действительный в глобальном сервере config начиная с Apacheа 2.0

User директива устанавливает пользовательское удостоверение личности как, который сервер ответит на запросы. Чтобы использовать эту директиву, сервером нужно управлять первоначально как root . если Вы начнете сервер как пользователь некорня, то это будет не в состоянии измениться на меньшего привилегированного пользователя, и вместо этого продолжит бежать как тот оригинальный пользователь. Если Вы действительно начинаете сервер как root , тогда это нормально для родительского процесса остаться бежать как корень. Unix-userid является одним из:

имя пользователя
обращается к данному пользователю по имени.
# сопровождаемый пользовательским числом.
обращается к пользователю его числом.

пользователь не должен иметь никаких привилегий, которые приводят к этому являющийся в состоянии получить доступ к файлам, которые не предназначены, чтобы быть видимым к внешнему миру, и точно так же пользователь не должен быть в состоянии выполнить кодекс, который не предназначен для запросов HTTP. Рекомендуется, чтобы Вы настроили нового пользователя и группу определенно чтобы управлять сервером. Некоторые admins используют пользователя nobody , но это не всегда желательно, начиная с nobody пользователь может иметь другие использования на системе.

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

не устанавливать User (или Group ) к root если Вы не знаете точно, что Вы делаете, и, каковы опасности.

с perchild MPM, которое предназначено к серверу действительные хозяева, которыми управляют согласно различным пользовательским удостоверениям личности, User директива определяет пользовательское удостоверение личности для главного сервера и отступления для <VirtualHost> секции без AssignUserID директива.

специальное примечание: Использование этой директивы в <VirtualHost> больше не поддержан. Формировать ваш сервер для suexec использование SuexecUserGroup .

отметить

хотя User директива присутствует в beos и mpmt_os2 MPMs, это - фактически не там и только существует по причинам совместимости.