Desative https quando o proxy reverso Nginx para o endereço IP

Desative https quando o proxy reverso Nginx para o endereço IP

Configurei o Nginx como um proxy reverso em meu servidor para um site, digamos example.com

Quero que o cliente acesse meu site usando um endereço IP, algo comohttp://192.0.2.67

O problema é que há um redirecionamento no site example.com configurando HTTP para redirecionar para HTTPS. (Este exemplo.com usando Cloudflare)
Quando o cliente acessa meu site, http://192.0.2.67ele é redirecionado parahttps://example.com

Como desativo o redirecionamento HTTP para HTTPS em meu proxy reverso Nginx?

Meu código é como abaixo:

server {
   listen 80;

   location / {
       proxy_pass http://example.com;
   }
}

Responder1

Não vejo o redirecionamento no código que você postou na pergunta. Isso significa que o redirecionamento é feito no lado example.com.

Depende de como é feito o redirecionamento. Caso o redirecionamento seja feito simplesmente "http TCP/80 => https TCP/433" e nenhuma verificação a seguir você pode tentar fazer proxy diretamente para https:

server {
   listen 80;

   location / {
       proxy_pass https://example.com;
   }
}

Caso isso não ajude, temo que você não tenha muitas chances de sucesso, pois você não é o nó que percebe a força do redirecionamento https.

Caso haja um cabeçalho HTTP Strict Transport Security (HSTS) na página, o redirecionamento é feito no nível do navegador e você também tem chances mínimas de pular o ip (em teoria, você pode tentar filtrar esse cabeçalho).

Responder2

Parece-me que a página está redirecionando, não o servidor web. Através do PHP, isso pode ser conseguido com algo assim:

<?php header('Location: http://google.com') ?>

Nesse caso, é difícil proibir esse tipo de comportamento através do próprio servidor web.

Responder3

Nginx não redireciona aqui. É o servidor de origem que está enviando esse redirecionamento HTTP. Com o Nginx você pode substituir os redirecionamentos enviados pelo seu próprio destino de redirecionamento:

server {
    listen 80;

    location / {
        proxy_pass http://example.com;
        # replace redirects
        proxy_redirect http://example.com http://192.0.2.67;
    }
}

Para mais detalhes vejadocumentação de ngx_http_proxy_module

informação relacionada