Назад | Перейти на главную страницу

nginx: как перезаписать одну директиву

Я пытаюсь организовать свои конфиги vhost в нескольких файлах, чтобы были просмотр основных файлов / "шаблонов", а остальные просто включали их и при необходимости перекрывали настройки. Вот описано, как работает наследование в nginx. Я хотел бы знать следующее: (как) можно удалить не весь блок настроек / контекст (например, server), но только вариант (например, server_name).

Пример:

Я определил server блокировать

server {
    listen   80;
    # server_name is not defined

    if ($host ~ ^(?<project>.+)\.(?<area>.+)\.loc$) {
        set $folder "$area/$project";
    }
    ...
}

и хотите установить / переписать настройку server_name в другом месте. Это должно быть похоже

server.server_name foo.bar.loc;

Пунктирный синтаксис недопустим. Но может есть что-то подобное?

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