<?xml version='1.0' encoding='KOI8-R' ?>
<!DOCTYPE manualpage SYSTEM "./style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="./style/manual.ru.xsl"?>
<!-- English Revision: 421174 -->

<!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
 this work for additional information regarding copyright ownership.
 The ASF licenses this file to You 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.
-->

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

<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>МП-модуль должен быть выбран на этапе конфигурации,
    а затем скомпилирован вместе с сервером, чтобы стать
    его частью. Компиляторы способны оптимизировать 
    многие функции при условии, что используются потоки,
    однако они должны знать еще на этапе компиляции, используются
    потоки или нет.</p>

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

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

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

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

<table>
<columnspec><column width=".2"/><column width=".2"/></columnspec>
<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>
