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

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

## Приложение управления сервером.

Пользовательский интерфейс управления сервером реализуется FastCGI программой `fcgimm`, которая взаимодействует с веб-сервером с одной стороны и протоколом управления сервера Manjary (`MMP`) с другой. В простом случае, `fcgimm` вызывается модулем HTTP и управляет тем же сервером Manjary.

В примере конфигурации `./examples/full/manjary-http.xml` есть готовые настройки для доступа по адресу `http://localhost:81/management/`.

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

`fcgimm` {-b { [ `IP address` | `hostname` | `*` | `all` | `any` ] {:`port`} | `socket` }} [-l `logfile`] [-L {[screen= `yes` | `no` ] | [,level=`N`] | [,history=`N`] | [,size=`N`]}] [-p path] [-r `N`]

-b

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

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

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

-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` процессу `fcgimm`.

  size

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

-p

  Локальный путь к директории содержащей файлы использующиеся программой: таблицы стилей, список серверов и пр. По-умолчанию: fcgimm

-r

  Минимальный период времени через который будут перезагружаться таблицы стилей для генерации веб-страниц. В аргументе после числового значения может идти один из символов указывающих на размерность: `s` - секунды (по-умолчанию), `m` - минуты, `h` - часы, `d` - дни. При отладке изменений стилей имеет смысл указать 0 для загрузки стилей при каждой генерации веб-страниц. По-умолчанию: 15m.

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

Здесь fcgimm будет прослушивать локальный сокет fcgi_mm для запросов `FastCGI` из модуля HTTP Manjary на том же сервере:

    >fcgimm -b fcgi_mm -l fcgimm.log -Llevel=4,size=1Mb

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

    <fastcgi name="fcgi-mm">
      <server>fcgi_mm</server>
      <start>./fcgimm -b fcgi_mm</start>
    </fastcgi>

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

Версии `Windows` ниже 10 не поддерживают работу с локальными именованными сокетами. В таких случаях вместо имени сокета можно указать порт TCP на локальном интерфейсе, например `localhost:9001`.

Далее, в конфигурации виртуального хоста для директории `management` указать обращение к соответствующему приложению FastCGI при запросе файлов соответствующих маске "*.mm". Эта директория должна существовать, её содержимое не имеет значения.

    <redirect type="temporary" full-path="1" uri-path="/management/">/management/logon.mm</redirect>
    <directory path="*/management">
      <file must-exist="0">
        <match>*.mm</match>
        <handler>$fcgi-mm</handler>
      </file>
    </directory>

Таким образом, пользователь запрашивая из браузера ресурс http://`хост`:`порт`/management/ будет перенаправлен на адрес http://`хост`:`порт`/management/logon.mm (сработает директива `redirect` в первой строке примера) и получит доступ к интерфейсу управления.

### Запуск fcgimm на отдельном сервере.

Чтобы использовать fcgimm на отдельном сервере и управлять одним или несколькими серверами Manjary необходимо скопировать на целевую систему исполняемый файл `fcgimm.exe` и директорию `fcgimm`. По-умолчанию предполагается что директория `fcgimm` находится в текущем пути. Это может быть изменено ключом командной строки `-p`. Обязательно необходимо указать адрес и порт на котором будут приниматься запросы `FastCGI` от WEB-сервера. Для этого используется ключ командной строки `-b`. Например:`-b *:9001`.

Далее, следует перечислить серверы Manjary которые будут управляться. Список серверов читается из файла `servers.txt` находящегося в директории `fcgimm` (либо заданной ключом `-p`). Перечисленные в этом файле серверы должны быть соответствующим образом настроены для обработки запросов протокола управления.

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

Сетевой протокол `FastCGI` использующийся для передачи данных между приложением и WEB-сервером не предусматривает шифрования. Однако, в большинстве случаев приложение и WEB-сервер работают в одной системе. Протокол управления Manjary может использовать шифрование. Приложение fcgimm будет использовать шифрование если управляемый сервер Manjary находится не на локальном хосте и на на нём установлен сертификат и приватный ключ.

Пред. |  | След.
SMTPWeasel | Начало | Пользовательский интерфейс.