NGINX Proxy_Pass remove substring de url

5

Eu tenho um NGINX atuando como proxy reverso. Preciso remover uma string de subseqüência_1 da URL, o restante da URL é variável.

Exemplo:

Origin: http://host:port/string_1/string_X/command?xxxxx

Destination: http://internal_host:port/string_X/command?xxxxx

nginx.conf:

location /string_1/   { 

    proxy_pass  http://internal_host:port/$request_uri$query_string;

Obrigado,

@pcamacho

    
por Pedro 17.06.2015 / 17:12

2 respostas

7

Eu encontrei o caminho para reescrever o URL proxy_pass:

  location  /string_1/   {  

    if ($request_uri ~* "/string_1/(.*)") { 
            proxy_pass  http://internal_host:port/$1;
    }   

  }

Atenciosamente,

@pcamacho

    
por 17.06.2015 / 23:11
7

É realmente básico e simples. Basta adicionar /path/ part a proxy_pass e nginx substituirá o prefixo location s por esse caminho. Você precisa substituir /string_1/ por / , então faça:

location /string_1/ {
    proxy_pass  http://internal_host:port/;
}
    
por 18.06.2015 / 07:24