Deshabilite https cuando Nginx invierta el proxy a la dirección IP

Deshabilite https cuando Nginx invierta el proxy a la dirección IP

Configuré Nginx como proxy inverso en mi servidor para un sitio, digamos ejemplo.com

Quiero que el cliente acceda a mi sitio usando una dirección IP, algo así comohttp://192.0.2.67

El problema es que hay una redirección en el sitio example.com que configura HTTP para redirigir a HTTPS. (Este ejemplo.com usa Cloudflare)
Cuando el cliente accede a mi sitio desde http://192.0.2.67él, es redirigido ahttps://example.com

¿Cómo desactivo el redireccionamiento HTTP a HTTPS en mi proxy inverso Nginx?

Mi código es el siguiente:

server {
   listen 80;

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

Respuesta1

No veo la redirección en el código que publicaste en la pregunta. Significa que la redirección se realiza en el lado example.com.

Depende de cómo se haga la redirección. En caso de que la redirección se realice simplemente "http TCP/80 => https TCP/433" y no se realicen las siguientes comprobaciones, puede intentar realizar el proxy directamente a https:

server {
   listen 80;

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

En caso de que esto no ayude, me temo que no tiene muchas posibilidades de éxito ya que no es el nodo que se da cuenta de la fuerza para la redirección https.

En caso de que haya un encabezado HTTP Strict Transport Security (HSTS) en la página, la redirección se realiza en el nivel del navegador y allí también tiene posibilidades mínimas de omitir la IP (en teoría, puede intentar filtrar este encabezado).

Respuesta2

Me parece que la página está realizando una redirección, no el servidor web. A través de PHP, eso se puede lograr con algo como esto:

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

En ese caso, es difícil prohibir ese tipo de comportamiento a través del propio servidor web.

Respuesta3

Nginx no redirecciona aquí. Es el servidor de origen el que envía esta redirección HTTP. Con Nginx puedes reemplazar las redirecciones enviadas con tu propio objetivo de redirección:

server {
    listen 80;

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

Para más detalles verdocumentación de ngx_http_proxy_module

información relacionada