Usando uma variável em uma declaração upstream?

1

É possível usar uma variável em uma diretiva upstream nginx?

upstream appserver {
    server unix:/socks/$host.sock
}

Eu pesquiso meu pequeno coração e não consigo encontrar a resposta.

A) É possível?
B) Essa é uma idéia terrível?

    
por Enrico 03.07.2014 / 23:11

2 respostas

4

Geralmente é uma má ideia fazer esse tipo de configuração.

É melhor fazer o seguinte:

Configuração geral:

http {
    ...
    include upstreams/*.conf;
    ...
    server {
        ...

upstreams / *. conf:

Use um script para gerar esses arquivos com variáveis variáveis para você e, em seguida, recarregue a configuração com nginx -s reload

Exemplo de script python:

from os import system

upstream = "something"
with open('upstreams/bro.conf', 'w') as f:
    f.write('upstream {0} {{\n\tserver unix:/socks/{0}.sock\n}}'.format(upstream)
system('nginx -s reload')
    
por 04.07.2014 / 08:31
4

a) Não.

b) sim. Pensei que poderia ser útil para a configuração de desenvolvimento,

Não vejo problema em usar este snippet no dev:

proxy_pass http://unix:/socks/$host.sock;
    
por 04.07.2014 / 08:26

Tags