nginx redirecionamento da porta 8080 dá resultado ímpar

1

Na minha configuração, tenho o seguinte:

server {
   listen         8080;
   server_name    example.com www.example.com;
   return         301 https://$server_name$request_uri;
}

server {
    listen 443 ssl;
    ...

O problema é que uma chamada para http://example.com:8080 retorna um redirecionamento para https://example.com:8080 em vez do esperado https://example.com/ (implicitamente para a porta 443 )

Como evito que o nginx use a porta errada?

Uma regra semelhante para a porta 80 funciona bem, provavelmente porque não passa na porta padrão 80 como parte do URI

Atualização: O problema no teste é em parte devido aos redirecionamentos de cache dos navegadores, o que significa que qualquer teste subseqüente produzirá o resultado anterior.

Eu adicionei as seguintes instruções para server

port_in_redirect off;

No entanto, testando no modo anônimo / privado, obtenho o redirecionamento correto, mas apenas na primeira vez. Na segunda vez que tento o mesmo link, recebo o redirecionamento incorreto novamente. O wget não exibe esse comportamento e sempre obtém o redirecionamento correto, provavelmente porque não armazena em cache. No entanto, isso significa que ainda há algo errado com relação ao redirecionamento que estou tentando, pois os navegadores aparentemente decidem ignorá-los com números de porta não padrão.

    
por A.Grandt 04.06.2016 / 22:39

1 resposta

0

Está fazendo exatamente o que você mandou. Tente isto

return         301 https://$server_name$request_uri/;
    
por 04.06.2016 / 22:43

Tags