pode nginx set variable from file?

1
server {
    set $serverNames /www/test.txt;
    server_name $serverNames;
    ...

Eu quero saber se consigo ler o conteúdo do texto e atribuí-lo à variável. Eu tentei o código acima e não funcionou.

    
por 王肖毅 09.10.2018 / 10:37

1 resposta

2

Eu não acho que você pode "ler" arquivos em variáveis por padrão.

Existem módulos de terceiros que podem ler um valor de um local (que pode se referir a arquivos) em uma variável, por exemplo, nginx-eval-module .

Mas, para o seu caso de uso, acho que é um exagero (e você dependerá de um módulo de terceiros).

O que o NGINX pode fazer é incluir snippets de código na sua configuração.

Por exemplo, você pode fazer:

# nginx configuration
server {
    include /www/test.txt
    ...
}

# /www/test.txt
server_name
    example.com
    example.net
    ...
;

e assim por diante.

Se test.txt for um arquivo gerado automaticamente, deve ser muito fácil Modifique o script de geração para incluir server_name no início e ; no final.

Se for modificado manualmente, bem, então não é um problema.

    
por 09.10.2018 / 10:47

Tags