Não defina proxy_redirect para off , isso não está fazendo o que você acha que está fazendo. proxy_redirect realiza algo semelhante à regravação de URL, por exemplo:
location /sales/ {
proxy_pass http://ip_of_the_app:7180/;
proxy_redirect http://ip_of_the_app:7180/ http://$host/sales/;
}
Isso permite que você hospede o caminho /sales/ em outro lugar. Mas, mesmo assim, os parâmetros padrão para proxy_redirect fazem exatamente isso para você de graça. O padrão é redirecionar o local para o que estiver presente em proxy_pass (e os parâmetros padrão são usados quando você não define proxy_redirect ou usa proxy_redirect default; ).
Você não precisa definir proxy_redirect .
O que você está perdendo são cabeçalhos que precisam ser enviados para o aplicativo. O mais importante deles é HOST . Isso deve executar o proxy conforme desejado e manter o URL correto no navegador.
location / {
proxy_pass http://ip_of_the_app:7180/;
proxy_set_header HOST $host;
}
Observe que o aplicativo em http://ip_of_the_app:7180/ agora receberá a solicitação com o cabeçalho Host: my-app.net .
Você também deve considerar usar mais alguns cabeçalhos:
proxy_set_header Referer $http_referer;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
Isso permitirá um registro melhor dentro do aplicativo em http://ip_of_the_app:7180/ . X-Forwarded-For fornecendo o IP do cliente real (em oposição a nginx s IP) e X-Forwarded-Proto para verificar se o cliente está conectado ao nginx por meio de HTTP ou HTTPS.