Настройка встроенного веб-сервера (ihttpd)

Материал из ISPWiki
Перейти к: навигация, поиск

Встроенный веб-сервер при распространении продуктов на базе COREmanager 5 поставляется в варианте автоматической настройки.

Автоматическая настройка встроенного веб-сервера

В данном варианте настройки встроенный веб-свервер начинает автоматическое прослушивание порта 1500 на основном IP-адресе сервера по каждому доступному протоколу (IPv4 и IPv6).

Возможности конфигурирования встроенного веб-сервера

Вы можете настроить встроенный веб-сервер на прослушивание необходимых IP-адресов и портов с помощью командной строки при запуске, а также с помощью конфигурационного файла.

Если настройки определенны в конфигурационном файле, параметры конфигурации, указанные в командной строке, будут проигнорированы.

Настройка с помощью командной строки при запуске

При запуске встроенного веб-сервера есть возможность указать конкретный IP-адрес и порт прослушивания. Подробнее об этой функции Вы можете узнать, запустив встроенный веб-сервер с ключом -h (справка о работе с программой).

Настройка с помощью конфигурационного файла

Путь по умолчанию: /usr/local/mgr5

Для более гибкого конфигурирования встроенного веб-сервера используется файл etc/ihttpd.conf директории установленного продукта на базе COREmanager 5.

Прослушиваемые IP-адреса настраиваются с помощью секции listen данного файла. Секция имеет следующий формат:

 listen {
   ip <IP-адрес прослушивания>
   port <порт прослушивания>
   certkey <путь к файлу ключа SSL-сертификата>
   cert <путь к файлу SSL-сертификата>
   redirect
   status <секретный url>
   nochunked
   allow_ip <URL> <IP|IP/маска|IP-IP>
   deny_ip <URL> <IP|IP/маска|IP-IP>
   allow_origin <URL>
 }
  • IP-адрес является обязательным параметром
  • Остальные параметры являются необязательными
  • Если не указан параметр "port", прослушиваться будет порт встроенного веб-сервера по умолчанию (1500)
  • Параметры "certkey" и "cert" должны быть указаны вместе. Указание только одного из этих параметров является ошибкой конфигурирования.
  • Если параметры путей SSL-сертификатов не указаны, встроенный веб-сервер будет использовать автоматически созданный им при запуске самоподписанный SSL-сертификат
  • Если присутствует параметр redirect, пользователям будет запрещено использовать HTTP соединение для работы с панелью. Все HTTP запросы будут автоматически пересылаться на аналогичный URL с использованием протокола HTTPS. (не рекомендуется использовать эту опцию с VMmanager, VEmanager и DCImanager, так как это может помешать работе установщиков ОС). При пакетной установке параметр redirect прописан по умолчанию, кроме панелей VMmanager, VEmanager и DCImanager.
  • Если присутствует параметр status, при обращении по указанному URL встроенный веб-сервер будет отдавать страницу с состоянием (где будет отображено, в частности, количество активных соединений). По умолчанию данная функциональность отключена
  • Если присутствует параметр nochunked встроенный веб-сервер будет добавлять во все ответы заголовок Connection: close. Это заставит клиентов использовать для каждого нового запроса новое соединение. Данный параметр добавлен для интеграции встроенного веб-сервера с nginx
  • Параметры allow_ip или deny_ip позволяют разрешить или запретить доступ к определенным URL. URL не должен содержать домена и порта - только путь после порта, например mancgi/dbadmin. Правила обрабатываются в порядке их следования. Если есть противоречивые правила, верхнее отработает первым. Если есть разрешающее правило, то для указанного url все ip, не попадающие в правило, считаются запрещенными.

Для DCImanager реализован Модуль "Проксирование IPMI через ihttpd". В связи с этим добавлена новая секция — ipmiproxy:

 ipmiproxy {
   ipmiproxy_startport <Начальный порт диапазона>
   ipmiproxy_endport <Конечный порт диапазона>
 }
  • Начальный порт диапазона — начало диапазона портов, которые используют проксирование при открытии JAVA-консоли пользователем. По умолчанию — "49000". Поле доступно с версии 5.157;
  • Конечный порт диапазона — конец диапазона портов, которые используют проксирование при открытии JAVA-консоли пользователем. По умолчанию — "50000". Поле доступно с версии 5.157.


Примеры конфигурации:

 listen {
   ip *
 }

Встроенный веб-сервер будет прослушивать все доступные IPv4-адреса используя порт по умолчанию ("*" идентично "0.0.0.0")

 listen {
   ip 5.6.7.8
 }

Встроенный веб-сервер будет прослушивать IPv4-адрес 5.6.7.8

 listen {
   ip 5.6.7.8
   port 1700
 }

Встроенный веб-сервер будет прослушивать IPv4-адрес 5.6.7.8 используя порт 1700

 listen {
   ip 5.6.7.8
   port 1700
   certkey etc/my.key
   cert etc/my.crt
 }

Встроенный веб-сервер будет прослушивать IPv4-адрес 5.6.7.8 используя порт 1700 и файл SSL-сертификата etc/my.crt с ключом etc/my.key для SSL-запросов (https)

 listen {
   ip ::
 }

Встроенный веб-сервер будет прослушивать все доступные IPv6-адреса используя порт по умолчанию

 listen {
   ip 2001:db8::ae21:ad12
   port 1800
 }

Встроенный веб-сервер будет прослушивать IPv6-адрес 2001:db8::ae21:ad12 используя порт 1800

 listen {
   ip 1.2.3.4
   allow_ip ispmgr 5.6.7.8/24
 }

Для клиента с адресом 5.6.7.8/24 разрешен доступ к 1.2.3.4/ispmgr, для всех остальных /ispmgr - запрещен.

 listen {
   ip 1.2.3.4
   deny_ip ispmgr 5.6.7.8-5.6.7.88
 }

Для клиентов с адресом из диапазона 5.6.7.8-5.6.7.88 запрещен доступ к 1.2.3.4/ispmgr, для всех остальных /ispmgr - разрешен.

После изменений файла конфигурации ihttpd, сервис необходимо перезапустить

На CentOS 6, Debian 7:

/etc/init.d/ihttpd restart

CentOS 7, Debian 8:

systemctl restart ihttpd

Индексная страница

По умолчанию по адресу <ip-адрес сервера>:1500 открывается COREmanager. Такое поведение можно изменить путем создания файла index в директории /usr/local/mgr5/bin/ с содержимым <короткое имя панели>

Например, чтобы открывался по умолчанию ISPmanager, создаем файл с содержимым ispmgr

#cat /usr/local/mgr5/bin/index
ispmgr

Перезапускаем COREmanager

killall core

Технические подробности

Открытое соединение остается активным в течение часа