3 1 1 1 1 1 1 1 1 1 1 Rating 3.00 (1 Vote)

Заметил такую штуку в панели ISPManager - если внести изменения в настройки WWW домена, то конфиг для домена сбрасывается на дефолтный (тот, который предоставляется по умолчанию после установки панели на сервер), в какой-то момент это реально достало и я решил разобрать вопрос шаблонизации конфигов в ISP панели. В чем собственно весь прикол - если ты настраиваешь кастомный конфиг для своего WWW домена, как например в статье Nginx — Защита / Блокировка доступа к .htaccess, скрытым файлам, то этот параметр будет сброшен, например если в панели ты сменишь SSL сертификат для своего сайта.

Настройка поддержки шаблонизации в ISPManager

Итак, для начала необходимо сделать резервные копии содержимого каталогов:

  • /etc/nginx/vhosts/
  • /usr/local/mgr5/etc/templates

Далее добавить опцию Option EnableWebTemplate в конфиг /usr/local/mgr5/etc/ispmgr.conf затем "убить" панель командой: 

killall core

Или можно завершить работу панели нативно:

/usr/local/mgr5/sbin/mgrctl -m ispmgr exit

Далее скопировать нужные шаблоны из каталога /usr/local/mgr5/etc/templates/default/ в /usr/local/mgr5/etc/templates/ и далее править конфиги уже в templates каталоге, параметры их этих конфигов будут автоматически переопределены по отношению к дефолтным (все прям как в MVC). Ок, теперь все готово для дальнейшей настройки шаблонных конфигов.

Настройка шаблонных конфигов ISP

Теперь для примера возьмем шаблон nginx-vhosts-ssl.template и добавим в него блокировку доступа к скрытым файлам на сервере, в этом файле необходимо найти строки (в данном случае это работает для связки NGINX + PHP-FPM):

...
{% if $REDIRECT_TO_APACHE != on and $SRV_CACHE == on %}
       	expires [% $EXPIRES_VALUE %];
{% endif %}
       	location / {
{% if $PHP == on %}
                location ~ [^/]\.ph(p\d*|tml)$ {
...

Сразу после строки location / { вставляем нужное правило: 

...
{% if $REDIRECT_TO_APACHE != on and $SRV_CACHE == on %}
       	expires [% $EXPIRES_VALUE %];
{% endif %}
       	location / {
                # Restrict access to hidden files
                location ~ /\. {
                        deny all;
                }
{% if $PHP == on %}
                location ~ [^/]\.ph(p\d*|tml)$ {
...

Проверка

Ок, идем в панель (она автоматически запустится по F5 или просто по клику на любой кликабельный элемент меню интерфейса панели) и для любого домена производим настройки в отношении SSL, например можно изменить сертификат или попросту отключить SSL > Сохранить > включить SSL > Сохранить . В терминале обязательно проверить корректность Nginx конфига используя команду:

nginx -t

Для верности проверить содержимое конфиг-файла для WWW домена на предмет добавленных новых параметров, путь по умолчанию к конфигу выглядит так:

nano /etc/nginx/vhosts/<username>/<domain.local>.conf

Если нет ошибок и новые параметры добавились, можно проверять доступ к скрытым файлам на сервере :) Done! 

Добавить комментарий


Защитный код
Обновить

Сейчас 213 гостей и ни одного зарегистрированного пользователя на сайте

Вверх
Вниз