Como configurar apropriadamente o proxy nginx quando o endpoint está em um contexto raiz?

2

Estou tentando descobrir como configurar um proxy reverso no nginx quando o terminal estiver em um contexto raiz:

http://frontend.com/mylink proxy encaminha para http://10.0.0.2:8000/

Infelizmente, não posso alterar o contexto do aplicativo em http://10.0.0.2:8000 , por isso estou tentando descobrir uma solução alternativa no nginx para esse problema. A seguinte configuração geralmente funciona bem quando existe um contexto, mas não funciona na situação acima:

location /mylink {
    proxy_pass     http://10.0.0.2:8000;
    proxy_redirect http://10.0.0.2:8000 /mylink;
    port_in_redirect off;
}

Alguma idéia do que estou sentindo falta aqui?

    
por tftd 08.09.2014 / 16:59

2 respostas

3

Como sua localização e proxy_pass não têm uma barra no final, o URI normalizado não verá a parte da /mylink cortada corretamente nem o comportamento padrão do proxy_redirect anexá-la. Simplesmente use isto:

location /mylink/ {
    proxy_pass http://10.0.0.2:8000/;
}
    
por 25.10.2014 / 01:25
2

Acho que se você alterar para:

location /mylink {
   proxy_pass     http://10.0.0.2:8000/;
   proxy_redirect http://10.0.0.2:8000 /mylink;
   port_in_redirect off;
}

Observe que o / na linha proxy_pass , faz com que a parte correspondente do seu location não seja enviada para o servidor.

Para referência, consulte o link :

If the proxy_pass directive is specified with a URI, then when a request is passed to the server, the part of a normalized request URI matching the location is replaced by a URI specified in the directive:

    
por 24.10.2014 / 20:54