No meu caso, o nginx escuta a porta 80
dentro de um contêiner docker, mas está mapeado para a porta 8080
(ou qualquer porta aleatória) fora do contêiner. Não há nenhum proxy reverso intermediário que possa adicionar cabeçalhos adequados para a porta e também não queira codificá-lo na configuração do nginx.
Exemplo de redirecionamento errado:
http://localhost:8080/directory -> http://localhost/directory/
Eu tentei:
server {
# ...
port_in_redirect off;
server_name_in_redirect off;
# ...
}
Mas não funcionou. A única coisa que funcionou bem foi:
server {
# ...
absolute_redirect off;
# ...
}
Entrada manual para absolute_redirect
diz:
If disabled, redirects issued by nginx will be relative.
Acho isso mais flexível e não exige que você tenha o nome do servidor e a porta codificados em qualquer lugar.
Se você estiver preocupado com redirecionamentos com URLs relativos, verifique este comentário .