Модуль протокола 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>pattern1pattern2</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
указываются порты для протокола HTTP (например, стандартный - 80)
без SSL и для HTTPS
(стандартный - 443) с SSL. Как и в других частях конфигурации,
возможно указание нескольких узлов host с разными
списками портов, ключами, сертификатами и ACL.
Связывает имя заданное пользователем в атрибуте name с информацией о сервере FastCGI.
Обязательный узел server описывает
адрес и порт по которым нужно подключаться к серверу FastCGI. Если
порт не указан, значение узла server
рассматривается как имя локального сокета. Необязательный узел
start задаёт имя исполняемого файла с
параметрами который будет запущен при запуске сервера
Manjary.
В Windows до
версии 10 локальные именованные сокеты не поддерживаются.
Описание локальной директории путь к которой соответствует
шаблону в атрибуте path.
Указывает что нужно возвращать при запросе 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.
Задаёт соответствие расширений файлов и типов mime. Если
указан атрибут file, список
соответствий будет загружен из него (см. файл
mime.types). Вложенные узлы ext дополняют список. При поиске
соответствий директории будут просматриваться от заданной к
корневой, пока расширение файла не будет найдено в настройках для
одной из директорий.
Указывает как нужно обрабатывать файлы, имена которых
соответствуют одной из масок в узлах match.
Необязательное поле. Если задано - указывает
программу-обработчик которой в качестве аргумента будет передано
полное локальное имя запрошенного файла. Результат работы
программы выведенный на консоль будет возвращён в качестве ответа
сервера. Значением узла может быть путь URI к программе CGI, путь
должен быть описан через alias с параметром
script=1.
Если значение узла начинается с символа "$", оно рассматривается
(без "$") как имя для сервера FastCGI заданное атрибутом name узла XML fastcgi. Значение начинающееся с
символа "@" рассматривается (без "@") как локальное имя
выполняемого файла, например
@C:\PHP\php-cgi.exe.
Список адресов клиентов ограничивающий доступ к файлам.
Список адресов клиентов
ограничивающий доступ к директории. Атрибут not-listed задаёт поведение если адрес не
найден: permit|deny|parent. По-умолчанию: parent (просматривать списки из установок
для родительских директорий).
Деревья XML vhost описывают
виртуальные хосты. При клиентском запросе ресурса с сервера,
просматривается список виртуальных хостов в том порядке как они
заданы в конфигурации, пока не будет найдено соответствие по имени
хоста и/или по номеру порта. Далее, запрос обрабатывается в рамках
настроек найденного хоста.
Шаблоны имён хоста. По-умолчанию хосту соответствует любое имя.
Список портов хоста разделённых запятыми. Элементами списка
могут быть номера портов или диапазоны номеров, например 80-88.
Списком определяются порты из множества заданного в host. По-умолчанию хосту соответствует любой
порт.
Файл содержащий сертификат. Этот узел переопределяет
соответствующий узел в host, другими
словами, задаёт сертификат конкретно для данного хоста.
Файл содержащий приватный ключ. Этот узел переопределяет
соответствующий узел в host, другими
словами, задаёт приватный ключ конкретно для данного хоста.
Задаёт пароль если приватный ключ указанный в узле SSL-key-file защищён паролем. Этот узел
переопределяет соответствующий узел в host, другими словами, задаёт приватный ключ
конкретно для данного хоста.
Локальный путь к корневой директории хоста.
Псевдоним для элемента пути URI. Значение узла - путь к
локальной директории. Обязательный атрибут uri-path указывает имя элемента пути URI.
Если для необязательного атрибута script установлено значение 1, подразумевается что директория указанная
в значении узла содержит программы CGI.
Перенаправление: если запрошенный путь URI начинается со
строки заданной атрибутом uri-path,
то будет возвращён ответ перенаправляющий клиента на путь,
начальная часть которого (совпадающая с uri-path) заменена значением узла. Если
указан атрибут full-path со значением
1, то перенаправление используется
только если запрошенный путь полностью совпадает со значением uri-path. Атрибут type определяет какой код ответа HTML
будет использован для перенаправления:
301|302|303|307|308|permanent|temporary. Ключевое слово permanent соответствует 301, а temporary - 302.
Настройки директорий в рамках конкретного хоста.