Конфигурация web сервера в ISPmanager Lite Print

  • web сервер, ISPmanager Lite, испменеджер
  • 2

Поддерживаемое ПО

На данный момент ISPmanager работает со следующими серверами:

  • Nginx версии не ниже 1.1.15
  • Apache 2.2 и apache 2.4

Настройка web-сервера


Следующая группа параметров используется вне зависимости от того, какой web сервер вы используете

path php-cgi <полный путь>

Путь до исполняемого файла php-cgi

WebDefaultAliases <список алиасов>

Набор дополнительных имен, которые будут предложены автоматически при создании web домена. Вы можете использовать макрос _name_, чтобы подставить в строку основное имя домена

BackendBind <ip адрес+порт>

Адрес, на котором будет поднят backend (web сервер, на который будет передавать запросы frontend сервер). При одновременной установке nginx и apache backend — apache.

WebModules <список модулей>

Список используемых web серверов

WebUser <имя>

Имя пользователя, с правами которого работает web сервер (необходимо указывать именно имя, а не uid)

WebGroup <имя>

Группа, с правами которой работат web сервер (необходимо указывать именно имя, а не gid)

WebRestartDelay <секунды>

Минимальное время, которое должно проходить между перезапусками web сервера

SSLSecureProtocols <список протоколов>

Список протоколов, указываемых web-серверу для использования в случае, если используется повышенная безопасность SSL (например, SSLSecureProtocols TLSv1 TLSv1.1 TLSv1.2)

SSLSecureChiphers <список шифров>

Список шифров в формате openssl, указываемых web-серверу для использования в случае, если используется повышенная безопасность SSL (например, SSLSecureChiphers HIGH:!RC4:!aNULL:!eNULL:!MD5:!EXPORT:!EXP:!LOW:!SEED:!CAMELLIA:!IDEA:!PSK:!SRP:!SSLv2)

ApsExtRepository <URL репозитария>

Путь до xml-файла внешнего репозитория APS

Option ApsRepositoryUpdated

Наличие этой опции указывает, что при старте панели управления не нужно выполнять обновления списка APS-скриптов

Option DisableSecurePhpBin

Наличие этой опции отключает создание защищенной директории php-bin (DefaultHomeDir/php-bin/username) для пользователя и создание хардлинок для php и php.ini из домашней директории пользователя в защищенную директорию (применяется в режимах работы php как CGI или FastCGI (Apache)). Вместо этого php и php.ini будут создаваться в директории php-bin пользователя

Список доступных кодировок web домена берется из файла etc/charset. По умолчанию в нем указана только utf-8.

Пример

Если прописать

path php_open_basedir none

то в конфиг VirtualHost будет добавлено

php_admin_value open_basedir "none"

Настройка Apache

Во время запуска панели происходит опрос загруженных модулей apache. Так мы определяем список возможных настроек

cgi_module

возможность работы с CGI скриптами

fastcgi_module или fcgid_module

возможность работы с php в режиме fastcgi

php5_module

возможность работы c php через модуль apache

Если есть поддержка CGI и найден файл, указанный в path php-cgi, появляется возможность работы с php в режиме CGI

Далее приведен список параметров, используемых для настройки панели под конкретную конфигурацию apache.

Option ApacheITK

Добавляется, если используется apache ITK. При этом в конфиг вместо директивы SuexecUserGroup пишется AssignUserID

path apachectl <имя>

Путь до программы/скрипта, используемого для перезапуска apache. Должен уметь обрабатывать следующие параметры: -M (получить список модулей), graceful (мягкая перезагрузка), restart (жесткая перезагрузка, используется при добавлении/удалении IP адресов)

path apache-vhosts <каталог>

Имя каталога, в котором будут создаваться файлы с настройками web доменов

path apache.conf <путь>

Путь до основного файла конфигурации apache. В него будут записываться директивы Listen и NameVirtualHost

ApacheWidePorts <список портов>

Для указанных портов в apache будет добавляется Listen для всех IP адресов сервера. По умолчанию: 80 443. Это позволяет уменьшить количество жестких перезапусков apache.

Настройка Nginx

Во время запуска панели проверяется наличие сервиса php-fpm. Если он найден, будет доступно использовать в настройках web доменов php в режиме fastcgi.

Далее приведен список параметров, используемых для настройки панели под конкретную конфигурацию nginx.

path nginx-vhosts <каталог>

Имя каталога, в котором будут создаваться файлы с настройками web доменов

path nginx-vhosts-includes <список каталогов>

Пути до файлов с дополнительными настройками, которые будут добавлены в секцию server каждого web домена (используется директива Include)

path fpm-pool.d <каталог>

Имя каталога, в котором будут создаваться файлы с настройками php-fpm

path fpm-service <имя>

Имя сервиса php-fpm. Используется для его перезапуска при добавлении новых пользователей.

path nginx-static <регулярное выражение>

Используется для определения файлов, которые nginx должен отдавать самостоятельно.

path nginxctl <команда>

Используется для перезапуска nginx при добавлении новых web доменов. Должна обрабатывать параметры: reload (перечитать настройки web доменов), restart (перезапустить nginx, используется при добавлении/удалении IP адресов), stop/start (запустить nginx, используется при конвертации настроек в случае добавления/удаления web сервера)

path nginx-configtest <команда>

Используется для проверки корректности содержимого конфигурационных файлов Nginx. По умолчанию равна [path nginxctl] configtest

path nginx <команда>

Используется при запуске панели для проверки работоспособности nginx. Должна корректно обрабатывать параметр -V

ForwardedSecret <строка>

Используется для защиты от подделки IP адреса.

Пример

Если установить

path nginx-static ~* ^youscript\.ext$

То создастся location

location ~* ^youscript\.ext$ {
   try_files $uri $uri/ @fallback;
}
вместо
location ~* ^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar|swf)$ {
    try_files $uri $uri/ @fallback;
}

ForwardedSecret

В случае, если вы переправляете запросы из nginx в панель, мы определяем обратный адрес по HTTP заголовку X-Forwarded-For. Злоумышленник получает возможность подменить обратный адрес, используя этот заголовок, что, в свою очередь, позволяет ему воспользоваться чужими COOKIE для выполнения запросов от имени другого пользователя. Панель игнорирует заголовок X-Forwarded-For, если запрос не содержит заголовка X-Forwarded-Secret с таким же значением, как то, что записано в конфиге.

Перезапуск web сервера


Попытка перезапуска web сервера происходит через 2 секунды после последнего изменения настроек. Если в течение этого времени происходят другие изменения, то перезапуск будет отложен еще на 2 секунды. Дополнительно вы можете задать параметр WebRestartDelay — минимальную задержку между последовательными перезапусками web сервера.

В случае, если изменения не затрагивали списка прослушиваемых IP адресов/портов, делается мягкая перезагрузка web сервера, в противном случае сервер перезапускается полностью.


Ротация журналов


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

ISPmanager 5 использует logrotate для ротации журналов web сервера.

path logrotate.d <каталог>

Указывает каталог, куда будут сохраняться настройки logrotate (отдельные файлы для каждого web домена)

LogrotateInfiniteValue <целое число>

Указывает количество хранимых архивов, если в панели указано бесконечное значение

Переконфигурирование web-сервера


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

Внимание! Данное действие не сохранит изменения в конфигурационных файлах, внесенные вручную! 

Для выполнения операции последовательно нужно выполнить следующие функции:

webreconfigure.initialize с параметром shutdown=on
webreconfigure.restore

Пример выполнения с помощью mgrctl для ISPmanager Lite:

/usr/local/mgr5/sbin/mgrctl -m ispmgr webreconfigure.initialize shutdown=on
/usr/local/mgr5/sbin/mgrctl -m ispmgr webreconfigure.restore





Was this answer helpful?

« Back