Existe uma maneira de compartilhar diretivas de configuração entre dois server {}
blocos nginx ? Gostaria de evitar a duplicação das regras, pois o conteúdo HTTPS e HTTP do meu site é exibido exatamente com a mesma configuração.
Atualmente, é assim:
server {
listen 80;
...
}
server {
listen 443;
ssl on; # etc.
...
}
Posso fazer algo como:
server {
listen 80, 443;
...
if(port == 443) {
ssl on; #etc
}
}
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
fonte
Não conheço uma maneira como você sugere, mas certamente existe uma maneira fácil e sustentável.
Mova as configurações comuns do servidor para um arquivo separado, ou seja, "serverFoo.conf" e, em seguida
include
, emserver {}
blocos separados da seguinte maneira:fonte
server_name
for diferente para cada portalisten 443 ssl;
partir de agora um.listen
linhas não são interpretadas corretamente, mas movê-las para separar asserver{}
corrige.Expandindo as respostas já úteis, aqui está um exemplo mais completo:
fonte
Apenas para adicionar à postagem de Igor / Jauder, se você estiver ouvindo um IP específico, poderá usar:
fonte