Встроенный веб-сервер при распространении продуктов поставляется в варианте автоматической настройки.
Веб-сервер не поддерживает работу по протоколу HTTP/2.
- Автоматическая настройка встроенного веб-сервера
- Возможности конфигурирования встроенного веб-сервера
- Индексная страница
- Технические подробности
- Настройка связки nginx и ihttpd
Автоматическая настройка встроенного веб-сервера
В данном варианте настройки встроенный веб-свервер начинает автоматическое прослушивание порта 1500 на основном IP-адресе сервера по каждому доступному протоколу (IPv4 и IPv6).
Возможности конфигурирования встроенного веб-сервера
Вы можете настроить встроенный веб-сервер на прослушивание необходимых IP-адресов и портов с помощью командной строки при запуске, а также с помощью конфигурационного файла.
Если настройки определенны в конфигурационном файле, параметры конфигурации, указанные в командной строке, будут проигнорированы.
Настройка с помощью командной строки при запуске
При запуске встроенного веб-сервера есть возможность указать конкретный IP-адрес и порт прослушивания. Подробнее об этой функции Вы можете узнать, запустив встроенный веб-сервер с ключом -h (справка о работе с программой).
Настройка с помощью конфигурационного файла
Путь по умолчанию: /usr/local/mgr5
Для более гибкого конфигурирования встроенного веб-сервера используется файл etc/ihttpd.conf директории установленного продукта на базе COREmanager.
Прослушиваемые IP-адреса настраиваются с помощью секции listen данного файла. Секция имеет следующий формат:
listen {
ip <IP-адрес прослушивания>
port <порт прослушивания>
certkey <путь к файлу ключа SSL-сертификата>
cert <путь к файлу SSL-сертификата>
redirect
status <секретный url>
nochunked
}
- 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
Примеры конфигурации:
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.
После изменений файла конфигурации ihttpd сервис необходимо перезапустить:
systemctl restart ihttpd
Индексная страница
По умолчанию по адресу <ip-адрес сервера>:1500 открывается COREmanager. Такое поведение можно изменить путем создания файла index в дирекии /usr/local/mgr5/bin/ с содержимым <короткое имя панели>
Например, чтобы открывался по умолчанию ispmanager, создаем файл с содержимым ispmgr
#cat /usr/local/mgr5/bin/index ispmgr
Перезапускаем COREmanager
killall core
Технические подробности
Открытое соединение остается активным в течение часа
Настройка связки nginx и ihttpd
В файл конфигурации nginx добавляем server.
server {
listen 10.10.10.10:443;
server_name 10.10.10.10;
ssl on;
ssl_certificate /usr/local/mgr5/etc/manager.crt;
ssl_certificate_key /usr/local/mgr5/etc/manager.key;
client_max_body_size 20m;
set $mgr_proxy "https://10.10.10.10:1500";
location ^~ /manimg/ {
alias /usr/local/mgr5/skins/;
}
location / {
proxy_pass $mgr_proxy;
proxy_redirect $mgr_proxy /;
proxy_set_header Host $host:$server_port;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Secret mary123;
chunked_transfer_encoding off;
}
location ^~ /mancgi/ {
proxy_pass $mgr_proxy;
proxy_redirect $mgr_proxy /;
proxy_set_header Host $host:$server_port;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Secret mary123;
chunked_transfer_encoding off;
}
}
Директива client_max_body_size указывает, какого размера файла nginx сможет передать в панель (например это нужно для работы "Менеджера файлов" в ispmanager). Укажите здесь нужное значение
В файл конфигурации COREmanager и в файл конфигурации панели управления следует добавить директиву ForwardedSecret.
Например:
ForwardedSecret mary123
ForwardedSecret - набор букв и цифр, которые представляют собой ключ, используемый при проверке аутентификации по ограниченному списку IP-адресов, в случае использования nginx. Требуется для защиты от несанкционированных попыток аутентификации.
Обратите внимание, секретная фраза, указанная в файле конфигурации nginx (директива proxy_set_header X-Forwarded-Secret) должна совпадать с фразой, указанной в файлах конфигурации панелей управления (директива ForwardedSecret).
После выполнения изменений не забудьте перезапустить nginx и панель управления. Перезапустить панель управления можно командой
killall core
SPDY
Если используется spdy протокол, то для корректной работы следует добавить директивы
proxy_set_header User-Agent $http_user_agent; proxy_set_header Accept $http_accept; proxy_set_header Accept-Language $http_accept_language; proxy_set_header ISP-Client $http_isp_client; proxy_set_header Referer $http_referer; proxy_set_header Content-Type $http_content_type; proxy_set_header Cookie $http_cookie; proxy_set_header Pragma $http_pragma; proxy_set_header Cache-Control $http_cache_control; proxy_set_header Accept-Encoding $http_accept_encoding; RAW Paste Data