Apache. Документация на русском


Разделы:   1      2      3    4    5    6    7    8    9    10    11    12    13    14    15    16  

Раздел 2. Использование HTTP-сервера Apache

Пункты:   6    7    8    9    10    11    12    13    14    15    16    17    18      19      20    21    22    23    24    25    26  

 <         > 
  RU            EN  

Пункт 19. Многопроцессорные модули (MPM)

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

Введение

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

Apache HTTP Server 2.0 расширяет эту модульную структуру до самых основных функций веб-сервера. Сервер поставляется с набором многопроцессорных модулей (MPM), которые отвечают за привязку к сетевым портам на машине, прием запросов и отправку дочерних элементов для обработки запросов.

Расширение модульной конструкции до этого уровня сервера дает два важных преимущества:

  • Apache httpd может более чисто и эффективно поддерживать широкий спектр операционных систем. В частности, версия сервера для Windows теперь намного эффективнее, поскольку mpm_winnt может использовать собственные сетевые функции вместо уровня POSIX, используемого в Apache httpd 1.3. Это преимущество также распространяется на другие операционные системы, в которых реализованы специализированные MPM.
  • Сервер можно лучше настроить под нужды конкретного сайта. Например, сайты, которым требуется большая масштабируемость, могут использовать многопоточный MPM, такой как worker или event , в то время как сайты, которым требуется стабильность или совместимость со старым программным обеспечением, могут использовать prefork .

На уровне пользователя MPM очень похожи на другие модули Apache httpd. Основное отличие состоит в том, что в любой момент времени на сервер должен быть загружен один и только один MPM. Список доступных MPM отображается на индексной странице модуля.

Параметры MPM по умолчанию

В следующей таблице перечислены MPM по умолчанию для различных операционных систем. Это будет выбранный MPM, если вы не сделаете другой выбор во время компиляции.

Сетевое ПО mpm_netware
ОС/2 mpmt_os2
Юникс prefork , worker , или event , в зависимости от возможностей платформы
Окна mpm_winnt

Здесь «Unix» используется для обозначения Unix-подобных операционных систем, таких как Linux, BSD, Solaris, Mac OS X и т. д.

В случае Unix решение об установке MPM основывается на двух вопросах:

1. Поддерживает ли система потоки?

2. Поддерживает ли система потокобезопасный опрос (в частности, функции kqueue и epoll)?

Если ответ на оба вопроса «да», MPM по умолчанию — event .

Если ответ на № 1 — «да», а ответ на № 2 — «нет», по умолчанию будет worker .

Если ответ на оба вопроса «нет», то MPM по умолчанию будет prefork .

На практике это означает, что по умолчанию почти всегда будет event , так как все современные операционные системы поддерживают эти две функции.

Построение MPM как статического модуля

MPM могут быть созданы как статические модули на всех платформах. Один MPM выбирается во время сборки и подключается к серверу. Чтобы изменить MPM, сервер необходимо перестроить.

Чтобы переопределить выбор MPM по умолчанию, используйте параметр сценария . NAME — это имя желаемого MPM. --with-mpm=NAME configure

После компиляции сервера можно определить, какой MPM был выбран, используя ./httpd -l . Эта команда выведет список всех модулей, скомпилированных на сервере, включая MPM.

Построение MPM как модуля DSO

На Unix и подобных платформах MPM могут быть созданы как модули DSO и динамически загружены на сервер так же, как и другие модули DSO. Построение MPM в виде модулей DSO позволяет изменять MPM путем обновления LoadModule директивы для MPM вместо перестройки сервера.

 Модули загрузки mpm_prefork_module/mod_mpm_prefork.so 

Попытка использовать LoadModule более одного MPM приведет к сбою запуска со следующей ошибкой.

AH00534: httpd: Configuration error: More than one MPM loaded.

Эта функция включается с помощью --enable-mpms-shared опции скрипта configure . С аргументом будут установлены все возможные MPM для платформы. В качестве альтернативы в качестве аргумента можно указать список MPM. all

MPM по умолчанию, выбранный автоматически или указанный с помощью --with-mpm опции сценария configure , будет загружен в сгенерированный файл конфигурации сервера. Отредактируйте LoadModule директиву, чтобы выбрать другой MPM.



 <         > 

Пункты:   6    7    8    9    10    11    12    13    14    15    16    17    18      19      20    21    22    23    24    25    26  

Рейтинг@Mail.ru