<module-HTTP>
Пред. | Глава 3. Конфигурация. | След.

## <module-HTTP>

Модуль протокола `HTTP` не привязан к другим модулям и может быть единственным загруженным модулем.

### Примечание

В составе сервера Manjary имеется приложение fast-cgi `fcgimm` реализующее WEB-интерфейс и взаимодействущее с интерфейсом `MMP` через сеть либо локальный сокет. Этот интерфейс может использоваться пользователями для получения информации о своей учётной записи и смены пароля или операторами и администраторами для управления доменами, пользователями и пр. Приложение `fcgimm` может быть запущено на любом сервере в сети и к нему может обращаться любой WEB-сервер поддерживающий протокол fast-cgi. Это делает возможным управление множеством серверов Manjary из одного места. В простом случае `fcgimm` используется модулем HTTP сервера Manjary.

    <module-HTTP>
      <log-level>N</log-level>
      <host>...</host>
      ...
      <fastcgi name="fcginame">
         <server>hostname:port|IPv4:port|[IPv6]:port|socket_name</server>
         <start>filename</start>
      </fastcgi>
      ...
      <directory path="directory/path/*pattern?">
        <index type="parent|deny|auto[,list]|redirect[,list]|list">file1 file2</index>
        <mime-types file="filename">
          <ext name="type/name">ext</ext>
          ...
        </mime-types>
        <file must-exist="0|1">
           <match>pattern1 pattern2</match>
           <match>pattern3</match>
           <handler>$fcginame|@local-filename|URI-filename</handler>
           <acl>...</acl>
        </file>
        ...
        <acl not-listed="permit|deny|parent">
          <addr>...</addr>
          ...
        <acl>
      </directory>
      ...
      <vhost>
        <names>hostname[123] *pattern-?</names>
        <names>one?more</names>
        ...
        <ports>N1,N2-N3,N4</ports>
        <SSL-certificate-file>filename</SSL-certificate-file>
        <SSL-key-file>filename</SSL-key-file>
        <SSL-key-password>secret</SSL-key-password>
        <document-root>directory/path</document-root>
        <alias script="1|0" uri-path="/path/">local/path</alias>
        ....
        <redirect type="301|302|303|307|308|permanent|temporary"
                  uri-path="/path/" full-path="0|1">local/path</redirect>
        ...
        <directory>...</directory>
        ...
      </vhost>
      ...
    </module-HTTP>

host

  В узле `host` указываются порты для протокола `HTTP` (например, стандартный - 80) без SSL и для `HTTPS` (стандартный - 443) с SSL. Как и в других частях конфигурации, возможно указание нескольких узлов `host` с разными списками портов, ключами, сертификатами и ACL.

fastcgi

  Связывает имя заданное пользователем в атрибуте `name` с информацией о сервере FastCGI. Обязательный узел `server` описывает адрес и порт по которым нужно подключаться к серверу FastCGI. Если порт не указан, значение узла `server` рассматривается как имя локального сокета. Необязательный узел `start` задаёт имя исполняемого файла с параметрами который будет запущен при запуске сервера Manjary.

  ### Примечание

  В `Windows` до версии 10 локальные именованные сокеты не поддерживаются.

directory

  Описание локальной директории путь к которой соответствует шаблону в атрибуте `path`.

directory/index

  Указывает что нужно возвращать при запросе URI который ссылается на данную директорию. Поведение определяется атрибутом `type`: parent|deny|auto[,list]|redirect[,list]|list. По-умолчанию: `parent`.

  - `parent` Использовать поведение заданное для родительской директории.

  - `deny` Вернуть ошибку 403 Forbidden.

  - `auto` Значение узла рассматривается как список имён индексных файлов разделённых пробелами. Если в директории находится один из этих файлов, его содержимое будет возвращено в качестве ответа на запрос.

  - `redirect` Как `auto`, но ответом будет не содержимое файла, а перенаправление на него.

  - `list` В качестве ответа возвращается страница HTML со списком файлов и директорий содержащихся в данной директории.

  - `auto,list` (без пробелов до и после ',') Как `auto`, но если директория не содержит индексных файлов - как `list`.

  - `redirect,list` (без пробелов до и после ',') Как `redirect`, но если директория не содержит индексных файлов - как `list`.

directory/mime-types

  Задаёт соответствие расширений файлов и типов mime. Если указан атрибут `file`, список соответствий будет загружен из него (см. файл `mime.types`). Вложенные узлы `ext` дополняют список. При поиске соответствий директории будут просматриваться от заданной к корневой, пока расширение файла не будет найдено в настройках для одной из директорий.

directory/file

  Указывает как нужно обрабатывать файлы, имена которых соответствуют одной из масок в узлах `match`.

directory/file/handle

  Необязательное поле. Если задано - указывает программу-обработчик которой в качестве аргумента будет передано полное локальное имя запрошенного файла. Результат работы программы выведенный на консоль будет возвращён в качестве ответа сервера. Значением узла может быть путь URI к программе CGI, путь должен быть описан через `alias` с параметром `script`=`1`. Если значение узла начинается с символа "$", оно рассматривается (без "$") как имя для сервера FastCGI заданное атрибутом `name` узла XML `fastcgi`. Значение начинающееся с символа "@" рассматривается (без "@") как локальное имя выполняемого файла, например `@C:\PHP\php-cgi.exe`.

directory/file/acl

  Список адресов клиентов ограничивающий доступ к файлам.

directory/acl

  Список адресов клиентов ограничивающий доступ к директории. Атрибут `not-listed` задаёт поведение если адрес не найден: permit|deny|parent. По-умолчанию: `parent` (просматривать списки из установок для родительских директорий).

vhost

  Деревья XML `vhost` описывают виртуальные хосты. При клиентском запросе ресурса с сервера, просматривается список виртуальных хостов в том порядке как они заданы в конфигурации, пока не будет найдено соответствие по имени хоста и/или по номеру порта. Далее, запрос обрабатывается в рамках настроек найденного хоста.

vhost/names

  Шаблоны имён хоста. По-умолчанию хосту соответствует любое имя.

vhost/ports

  Список портов хоста разделённых запятыми. Элементами списка могут быть номера портов или диапазоны номеров, например 80-88. Списком определяются порты из множества заданного в `host`. По-умолчанию хосту соответствует любой порт.

vhost/SSL-certificate-file

  Файл содержащий сертификат. Этот узел переопределяет соответствующий узел в `host`, другими словами, задаёт сертификат конкретно для данного хоста.

vhost/SSL-key-file

  Файл содержащий приватный ключ. Этот узел переопределяет соответствующий узел в `host`, другими словами, задаёт приватный ключ конкретно для данного хоста.

SSL-key-password

  Задаёт пароль если приватный ключ указанный в узле `SSL-key-file` защищён паролем. Этот узел переопределяет соответствующий узел в `host`, другими словами, задаёт приватный ключ конкретно для данного хоста.

vhost/document-root

  Локальный путь к корневой директории хоста.

vhost/alias

  Псевдоним для элемента пути URI. Значение узла - путь к локальной директории. Обязательный атрибут `uri-path` указывает имя элемента пути URI. Если для необязательного атрибута `script` установлено значение `1`, подразумевается что директория указанная в значении узла содержит программы CGI.

vhost/redirect

  Перенаправление: если запрошенный путь URI начинается со строки заданной атрибутом `uri-path`, то будет возвращён ответ перенаправляющий клиента на путь, начальная часть которого (совпадающая с `uri-path`) заменена значением узла. Если указан атрибут `full-path` со значением `1`, то перенаправление используется только если запрошенный путь полностью совпадает со значением `uri-path`. Атрибут `type` определяет какой код ответа HTML будет использован для перенаправления: 301|302|303|307|308|permanent|temporary. Ключевое слово `permanent` соответствует 301, а `temporary` - 302.

vhost/directory

  Настройки директорий в рамках конкретного хоста.

Пред. | Наверх | След.
<module-IMAP> | Начало | <module-SpamCheck>