Файл конфигурации сайта

запланированоЗапланировано в WardPane 2.1. Этой возможности нет в текущей версии; страница описывает, как она должна работать. Планы

Кроме форм, у каждого сайта в WardPane 2.1 будет собственный файл конфигурации с синтаксисом, близким к nginx. Файл и формы показывают одни и те же настройки. Поле, изменённое в форме, меняется и в файле, а правка файла сразу видна в формах.

Файл нужен тем, кому удобнее работать с текстом. Вся настройка сайта собрана в одном месте, блок можно скопировать на другой сайт, а правку просмотреть перед сохранением. Кому хватает форм, могут файл вообще не открывать.

Редактирование файла

Откройте сайт и переключитесь в панели на просмотр его файла конфигурации (в экспертном режиме). При сохранении редактор проверяет файл:

  • о каждой ошибке сообщается с номером строки и короткой причиной, и ничего не применяется, пока весь файл не станет корректным;
  • неизвестная директива или значение вне допустимого диапазона тоже считается ошибкой, и о ней сообщается;
  • панель хранит историю версий, поэтому можно увидеть, что изменилось, и вернуться к более ранней версии.

Формы и файл правят один набор настроек, поэтому сохранённый в панели файл применяется так же, как форма. Работают те же проверки, а root-помощник ещё раз проверяет результат, прежде чем менять то, для чего нужен root.

Что описывает файл

Область Директивы (обзор)
Сайт server_name (домен и псевдонимы), handler (статика, PHP или Node.js)
Запросы max_body_size, тайм-ауты
Сжатие gzip, brotli
Журналы access_log с форматом и ротацией, error_log
Ответы header, expires, CORS
Пути блоки location с allow и deny, защита паролем, проксирование на локальный порт, тайм-ауты и запасной вариант
Адреса redirect и rewrite
Защита настройки защиты сайта (лимит запросов, Bot Fight, гео-правила, доступ только по ссылке и остальные) в виде директив

Примеры

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

Статический сайт со сжатием, кэшированием и заголовком безопасности:

server_name example.com www.example.com;
handler static;

gzip on;
brotli on;

expires /assets/ 30d;
header X-Frame-Options SAMEORIGIN;

Сайт на PHP с закрытой папкой администратора и увеличенным лимитом загрузки:

server_name shop.example.net www.shop.example.net;
handler php;
max_body_size 64m;

location /admin/ {
    allow 203.0.113.0/24;
    deny all;
}

redirect /old-catalog/ /catalog/ 301;

Приложение Node.js с API, к которому могут обращаться другие сайты, и отдельный сервис на локальном порту:

server_name booking.example.com;
handler node;

location /api/ {
    cors https://www.example.com;
}

location /reports/ {
    proxy 127.0.0.1:10050;
    timeout 120s;
}

access_log combined rotate=daily keep=14;

Справочник директив

Полный список директив с аргументами, значениями по умолчанию и ограничениями генерируется из схемы самой панели и выйдет вместе с WardPane 2.1. А пока все настройки, которые может содержать файл, описаны в формах панели и на страницах о защите, PHP, Node.js и .htaccess.