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

<!--
 Copyright 2003-2004 The Apache Software Foundation

 Licensed under the Apache License, Version 2.0 (the "License");
 you may not use this file except in compliance with the License.
 You may obtain a copy of the License at

     http://www.apache.org/licenses/LICENSE-2.0

 Unless required by applicable law or agreed to in writing, software
 distributed under the License is distributed on an "AS IS" BASIS,
 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.
-->

<!--***************************************************-->
<!-- 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>
