regex de localização nginx com proxypass

2

Sou muito novo no nginx, então me desculpe antecipadamente se estiver perguntando algo óbvio.

O que eu estou tentando fazer é fazer proxy para outro servidor um pedido que vem ao meu servidor nginx na forma de:

http://mysite/locationA/results?-variablerandomtexthere-test=true

A maneira como tentamos fazer isso foi:

  location ~* ^/locationA/results\?(.*)test=true$ {
allow 127.0.0.1;
deny all ;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_pass   http://myserver.org/ ;
proxy_redirect off;
}

O exemplo acima não funciona e com um pouco de pesquisando descobri que você não pode usar o regex no local com proxy_pass.

Existe alguma outra maneira de conseguir isso?

    
por giomanda 30.04.2015 / 13:03

1 resposta

0

Eu descobri como conseguir isso fazendo o seguinte:

 location / {

 if ($arg_test ~ "true") {
    set $gotoserver 1;
    }
if ($uri ~* "(queries|results)") {
   set $gotoserver  "${gotoserver}1" ;
    }
if ($gotoserver = 11) {
proxy_pass http://myserver.org ;
    }
}
    
por 06.05.2015 / 10:04