nginx use $ server_name no caminho ssl_certificate

27

Como posso usar um nome de variável no caminho do arquivo?

ssl_certificate /home/ec2-user/.certificados/$server_name.crt;
ssl_certificate_key /home/ec2-user/.certificados/$server_name.key;
    
por Claytinho 04.05.2013 / 17:08

1 resposta

30

Você não pode usar variáveis em todas as diretivas. ssl_certificate é tratado como uma string literal e é uma das muitas diretivas nas quais as variáveis não são suportadas.

Para especificar certificados diferentes para hosts, você deve explicitamente gravá-lo em um bloco de servidor:

http {
    server_name example.com;
    ssl_certificate /home/ec2-user/.certificados/example.com.crt;
    ssl_certificate_key /home/ec2-user/.certificados/example.com.key;
    # ...
}
http {
    server_name example.net;
    ssl_certificate /home/ec2-user/.certificados/example.net.crt;
    ssl_certificate_key /home/ec2-user/.certificados/example.net.key;
    # ...
}
# ...

Se você se sentir desconfortável ao duplicar a configuração, crie modelos e gere a configuração do nginx usando esses modelos. Veja também link .

    
por 04.05.2013 / 17:30