<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

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