Funções no nginx

1

Sou bastante novo no nginx, tenho um script conf nginx que segue o modelo, exemplo1 e exemplo2 tem o mesmo conteúdo, quero colocar esse conteúdo em uma função (mesmo conceito como métodos na programação), e passar parâmetros dentro para reduzir a duplicação, é possível fazer isso? Eu procurei por um longo tempo, mas não vi um exemplo que fizesse coisas semelhantes.

server {
   server_name test.com

  location ^~ /example1/ {
      proxy_pass http://<some-ip>/example1/;
      proxy_set_header blah

  }

  location ^~ /example2/ {
      proxy_pass http://<some-ip>/example2/;
      proxy_set_header blah

  }

}
    
por hades 05.04.2017 / 11:41

1 resposta

1

Assim como os comentários mencionados, não há funções no nginx. Para esses, você precisaria de um sistema de gerenciamento de configuração.

No entanto, para combinar esses dois blocos, você pode usar a captura de regex:

location ~ ^/(example1|example2/)$ {
    proxy_pass http://some.ip/$1;
    ... rest of configuration directives ...
}

É possível expandir a expressão regular para corresponder arquivos nesses caminhos, por exemplo:

location ~ ^/(example1|example2/)(.+)$ {
    proxy_pass http://some.ip/$1$2;
    ... rest of configuration directives ...
}

corresponde a todos os arquivos depois desses caminhos em URLs e os adiciona a proxy_pass .

    
por 05.04.2017 / 13:30

Tags