nginx: como sobrescrever uma diretiva

1

Estou tentando organizar minhas configurações de vhost em vários arquivos, para que haja uma visualização de arquivos básicos / "modelos" e o restante apenas inclua-os e substitua as configurações conforme necessário. Aqui é descrito como funciona a herança no nginx. O que eu gostaria de saber é: (como) é possível sobrescrever não todo o contexto / bloco de configuração (por exemplo, server ), mas apenas uma opção (por exemplo, server_name ).

Exemplo:

Eu defini um bloco server

server {
    listen   80;
    # server_name is not defined

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

e deseja definir / reescrever, defina a configuração server_name em outro lugar. Deve ser parecido com

server.server_name foo.bar.loc;

A sintaxe pontilhada não é permitida. Mas talvez haja algo assim?

    
por automatix 07.02.2013 / 19:16

1 resposta

1

Não é para funcionar assim. Você não pode sobrescrever, já que o nginx config é declarativo. Eu aconselho você a colocar a configuração comum em algum arquivo, criar vários blocos de servidor com parâmetros diferentes e usar a diretiva include para esse arquivo.

    
por 09.02.2013 / 09:26