<?xml version='1.0' encoding='KOI8-R' ?>
<!DOCTYPE manualpage SYSTEM "./style/manualpage.dtd">

<!--***************************************************-->
<!-- English revision: 1.2                             -->
<!--***************************************************-->
<!-- Translator: Mikhail Filimonov (mvf@uniyar.ac.ru)  -->
<!-- Reviewers:                                        -->
<!--             Ivan Shvedov (ivan@tversu.ru)         -->
<!--             Arthur Reznikov (art@altair.tversu.ru)-->
<!--***************************************************-->

<?xml-stylesheet type="text/xsl" href="./style/manual.ru.xsl"?>
<manualpage metafile="mpm.xml.meta">

  <title>Мульти-процессные модули (МП-модули)</title>

<summary>
<p>Этот документ описысывает, что такое мульти-процессные модули
и как они используются в HTTP-сервере Apache.</p>
</summary>

<section id="introduction"><title>Введение</title>

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

    <p>В Apache 2.0 модульная архитектура была расширена наиболее
    общими функциями веб-сервера. Теперь сервер поставляется с 
    набором мульти-процессных модулей (МП-модулей), ответственных
    за соединение с сетевыми портами компьютера, за приём запросов
    и за координацию их обработки дочерними процессами.</p>

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

    <ul>
      <li>Apache может более аккуратно и эффективно работать
      в самых разных операционных системах. В частности, 
      версия Apache для Windows теперь работает намного более 
      эффективно, благодаря тому, что МП-модуль
      <module>mpm_winnt</module> может использовать собственные
      сетевые функции Windows взамен сетевых функций уровня POSIX.
      Эта касается и других операционных систем, для которых
      разработаны специальные МП-модули.</li>

      <li>Сервер может быть настрен более оптимально для нужд конкретного
      сайта. Например, для сайтов, требующих значительной
      масштабируемости, может быть выбран многопоточный МП-модуль,
      такой как <module>worker</module>, а для сайтов, требующих
      большей стабильности или совместимости со старым ПО, может
      быть использован <module>prefork</module>. Кроме того,
      также предоставляются специальные возможности, такие как
      обслуживание различных хостов процессамми с привилегиями
      различных пользователей (<module>perchild</module>).</li>
    </ul>

    <p>На уровне пользователя МП-модули почти не отличаются от 
    всех остальных модулей Apache. Основное различие состоит
    в том, что с сервером может быть скомпилирован один и только
    один МП-модуль. Список доступных МП-модулей можно посмотреть
    в <a href="mod/">каталоге модулей</a>.</p>

</section>

<section id="choosing"><title>Выбор МП-модуля</title>

    <p>МП-модуль должен быть выбран на этапе конфигурации,
    а затем скомпилирован вместе с сервером, чтобы стать
    его частью. Компиляторы способны оптимизировать 
    многие функции при условии, что используются потоки,
    однако они должны знать еще на этапе компиляции, используются ли
    потоки или нет. Поскольку некоторые МП-модули используют
    потоки в ОС Unix, а другие - нет, Apache будет работать
    лучше, если МП-модуль был встроен в сервер на этапе
    компиляции.</p>

    <p>Чтобы подключить желаемый МП-модуль к Apache,
    используйте аргумент --with-mpm=<em>название</em> 
    скрипта <code>./configure</code>, где <em>название</em> -
    это название желаемого МП-модуля.</p>

    <p>Однажды откомпилировав сервер, всегда можно
    определить, какой МП-модуль был выбран, используя команду
    <code>./httpd -l</code>, которая выведет список 
    всех модулей, откомпилированных вместе с сервером,
    в том числе и название МП-модуля.</p>
</section>

<section id="defaults"><title>Подключённые по умолчанию МП-модули</title>

<p>Приведённая ниже таблица показывает, какие МП-модули подключены
по умолчанию для различных операционнах систем. В ней указан тот 
МП-модуль, который будет выбран, если Вы на этапе компиляции не
подключили другой МП-модуль.</p>

<table>
<tr><td>BeOS</td><td><module>beos</module></td></tr>
<tr><td>Netware</td><td><module>mpm_netware</module></td></tr>
<tr><td>OS/2</td><td><module>mpmt_os2</module></td></tr>
<tr><td>Unix</td><td><module>prefork</module></td></tr>
<tr><td>Windows</td><td><module>mpm_winnt</module></td></tr>
</table>
</section>

</manualpage>
