-
Notifications
You must be signed in to change notification settings - Fork 2
About Config file
Конфиг файл состоит из однострочных и блочных свойств.
Однострочное свойство выглядит следующим образом:
property_name: property_value;
Количество пробелов после двоеточия может быть каким угодно.
Блочные свойства выглядят так:
block1_name <some_settings> {
property1_name: property_value1;
property2_name: property_value2;
block2_name {
property1_name: property_value1;
}
}
Количество пустых строк между свойствами (как блочными, так и однострочными) не ограничено. Если какое-то однострочное свойство во вложенном блоке имеет такое же имя, что и в его блоке-родителе, то для него перезапишется это свойство.
http {
count_workflows: 8;
access_log: access.log;
error_log: error.log;
server {
listen: 80;
servername: 127.0.0.1;
root: /;
location ~ /[\s\S]+.html {
root: /html;
}
location ~ /[\s\S]+.css {
root: /css;
}
location ~ /[\s\S]+.(jpg|png) {
}
location = /about.html {
root: /main_page;
}
}
}
Требуют пояснения некоторые моменты. Модификатор *, который показывает, что url нечувствителен к регистру, можно поставить в дополнение к любому из других спецификаторов. При этом он обязательно должен следовать до всех остальных:
location *~ /[a-z][0-9].jpg
- валидно
location =* /login.html
- не валидно
Поля access_log
и error_log
показывают, в какой файл будут записываться логи. Их можно переопределить внутри каждого блока server
.
Свойство root
показывает, в какой директории следует искать запрашиваемый файл.
Если в блоке location
указано свойство root
, то для текущего url'а root-папка родительского блока заменится. Но можно указать поле add_root
. В таком случае следующий за этим полем путь добавится к родительскому.
-
Url в блоках
location
обязательно должен начинаться с символа/
. В противном случая config невалиден -
Для каждого блока
location
обязательно должна быть root-папка. Это может быть либо родительская, либо переопределенная в нем. В блокеserver
может и не быть свойстваroot
. В таком случае ожидается, что оно встретится во всех блокахlocation''', если нет - ошибка. Если в такой ситуации встретится поле
add_root``` - также ошибка -
До блока
http
могут следовать (пока что) только следующие свойства:
- count_workflows
- access_log
- error_log
-
Блоков
access_log
иerror_log
может и не быть -
Файл всегда начинается с блока http, чтобы подчеркнуть, что у нас http-веб-сервер
-
На одной строчке недопустимо прописывать более одного свойства
-
Расположение фигурной скобки не важно
-
В блоках
location
можно будет включать и отключать логирование. По умолчанию оно включено