Глава 5. WEB-интерфейс.

Содержание

Приложение администрирования.
Опции командной строки.
Пример использования с модулем HTTP сервера Manjary.
Пользовательский интерфейс.
Вход. Сервер, имя пользователя, пароль.
Профиль пользователя.
Домены, пользователи.
Проверка на спам.
Адресная книга.

Приложение администрирования.

Пользовательский интерфейс администрирования реализуется fast-cgi программой fcgiadm, которая взаимодействует с веб-сервером с одной стороны и командным интерфейсом сервера Manjary с другой. В простом случае, fcgiadm может вызываться модулем HTTP и управлять тем же сервером Manjary.

В процессе работы генерируются ссылки на различные локальные файлы которые будут запрашиваться браузером. По-умолчанию fcgiadm отвечает на запросы начинающиеся с /admin/ , по этому же пути из URL должны быть доступны файлы интерфейса администрирования.

При установке файлы интерфейса администрирования находятся в ./htdoc/admin, в примере конфигурации ./examples/manjary-http.xml есть готовые настройки для доступа по адресу http://localhost:81/admin/.

Опции командной строки.

fcgiadm {-b { [ IP address | hostname | * | all | any ] {:port} | socket }} [-l logfile] [-L {[screen= yes | no ] | [,level=N] | [,history=N] | [,size=N]}] [-s {caption = host:port ,...} | @filename ] [-r path]

-b

Адрес локального сетевого интерфейса (опционально) и порт TCP (отделённый от имени двоеточием) на котором будут прослушиваться запросы WEB-сервера. Интерфейс может задаваться адресом IP или именем. Чтобы использовались любые локальные адреса, вместо адреса можно указать одно из значений: *, all, any. Так же может быть указано имя локального сокета без двоеточия и номера порта. Допускается указание множества опций -b.

-l

Полное имя лог-файла. По-умолчанию лог-файл не создаётся.

-L

Опции журналирования:

screen

Указывает, нужно ли выводить записи на экран, может принимать значения: yes, on, true, 1 - выводить на экран или no, off, false, 0 - не выводить. По-умолчанию: yes.

level

Уровень детализации лог-файла. От 1 (наименьший) до 5 (самый подробный). По-умолчанию: 5.

history

Количество лог-файлов в ротации. Когда нужно начать новый файл, текущий переименовывается в file-000, перед этим старый file-000 переименовывается в file-001 и т.д., самый старый файл удаляется. По-умолчанию: 4.

Ротация может производиться в любой момент времени, для этого необходимо послать сигнал SIGALRM процессу fcgiadm.

size

Максимальный размер лог-файла. Когда достигается это значение выполняется ротация лог-файлов. Если size установлено в 0, ротация будет происходить каждый раз при переходе на новые сутки. По-умолчанию: 512Kb.

-s

Список серверов Manjary из которого пользователь при авторизации сможет выбирать сервер к которому следует подключиться. Если fcgiadm вызывается из модуля HTTP сервера Manjary с загруженным модулем Mail, то в этом списке всегда присутствует пункт Local для подключения к тому же серверу. Также, у пользователя всегда есть возможность ввести имя сервера и порт вручную. Строковый аргумент -s может быть указан в виде списка значений разделённых запятыми в формате: отображаемое_название=имя:номер_порта_CLI. Если аргумент начинается с "@", то остальная строка рассматривается как имя файла из которого нужно прочитать список. Файл должен содержать записи в отдельных строках: отображаемое_название=имя:номер_порта_CLI.

Если список серверов находится в файле, его можно будет изменять во время работы и сообщать об изменениях посылая сигнал SIGHUP процессу fcgiadm.

-r

URI путь к ресурсу администрирования. fcgiadm будет отвечать на запросы к этому пути и там же должны находиться файлы необходимые для интерфейса администрирования. По-умолчанию: /admin/, т.е. интерфейс администратора будет иметь адрес вида http[s]://хост:порт/admin/

Пример использования с модулем HTTP сервера Manjary.

Здесь fcgiadm будет прослушивать локальный сокет \socket\fcgiadm для обращений из модуля HTTP Manjary на том же сервере:

>fcgiadm -b \socket\fcgiadm -l fcgiadm.log -Llevel=4,size=1Mb

Для работы с fcgiadm в конфигурации модуля HTTP необходимо указать как к нему обращаться и (опционально) что запускать:

<fastcgi name="fcgi-admin">
  <server>\socket\fcgiadm</server>
  <start>./fcgiadm -b \socket\fcgiadm -l fcgiadm.log -Llevel=4,size=1Mb</start>
</fastcgi>
  

Далее, в конфигурации виртуального хоста для директории admin указать обращение к соответствующему приложению FastCGI при запросе файлов соответствующих маске "*.". В этой директории должны находиться файлы интерфейса администрирования.

<directory path="*/admin">
  <index type="auto">index</index>
  <file must-exist="0">
    <match>*.</match>
    <handler>$fcgi-admin</handler>
  </file>
</directory>  

Таким образом, пользователь запрашивая из браузера ресурс http://хост:порт/admin/ получит доступ к интерфейсу администрирования.