Existe uma maneira de compartilhar diretivas de configuração em dois server {}
blocos nginx? Eu gostaria de evitar duplicar as regras, pois o conteúdo HTTPS e HTTP do meu site é servido exatamente com a mesma configuração.
Atualmente está assim:
server {
listen 80;
...
}
server {
listen 443;
ssl on; # etc.
...
}
Posso fazer algo na linha de:
server {
listen 80, 443;
...
if(port == 443) {
ssl on; #etc
}
}
Você pode combinar isso em um bloco de servidor assim:
Instruções oficiais
Para esclarecer a resposta aceita, você precisa omitir
e você só precisa do seguinte para a versão nginx após 0.8.21
Referência:
Nginx Docs - Configurando um único servidor HTTP/HTTPS
Eu não conheço uma maneira como você sugere, mas certamente há uma maneira fácil e de fácil manutenção.
Mova as configurações comuns do servidor para um arquivo separado, ou seja, "serverFoo.conf" e depois
include
em blocos separados da seguinteserver {}
forma:Expandindo as respostas já úteis, aqui está um exemplo mais completo:
Apenas para adicionar ao post de Igor/Jauder, se você estiver ouvindo um IP específico, você pode usar: