Nginx envía 301 cuando usa proxy_pass

Nginx envía 301 cuando usa proxy_pass

Tengo un sitio web alojado en AWS,www.ejemplo.com. He creado un blog en Wix myblog.wixsite.com/blog. Ahora quiero mostrar el contenido de myblog.wixsite.com/blog enwww.ejemplo.com/blog. Así que utilicé la siguiente configuración de Nginx para intentar lograrlo.

location /blog/ {
          sub_filter 'http://myblog.wixsite.com/' 'https://$http_host/blog/';
          sub_filter 'https://myblog.wixsite.com/' 'https://$http_host/blog/';
          sub_filter 'href="/posts/' 'href="/blog/';
          sub_filter 'href="/category/' 'href="/blog/category/';
          sub_filter 'href="/authors/' 'href="/blog/authors/';
          sub_filter 'href="/recent/' 'href="/blog/recent/';

          proxy_ssl_verify off;
          proxy_set_header Host "myblog.wixsite.com";
          proxy_set_header X-Forwarded-Host "";
          proxy_set_header X-Forwarded-For "";
          proxy_set_header Accept-Encoding "";
          proxy_set_header Cookie "";

          proxy_pass http://myblog.wixsite.com/blog/;

          proxy_redirect ~^(http://[^/]+)(/.+)$ https://$http_host$2;
        }

Ahora, cuando golpeéwww.ejemplo.com/blog, Nginx me redirige ahttps://myblog.wixsite.com/blog/en lugar de mostrar el contenido enwww.ejemplo.com/blogsí mismo. También intenté cambiar proxy_pass http://myblog.wixsite.com/blog/;a proxy_pass https://myblog.wixsite.com/blog/; pero comencé a recibir el siguiente error.

*532 SSL_do_handshake() failed (SSL: error:14077438:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert internal error) while SSL handshaking to upstream, client: <redacted>, server: www.example.com, request: "GET /blog/ HTTP/2.0", upstream: "https://myblog.wixsite.com/blog/", host: "www.example.com"

Llevo un par de días con ello sin resultados. ¿Alguien puede sugerir qué podría estar haciendo mal?

Respuesta1

Cualquier usoproxy_redirecto cambiar

proxy_pass http://myblog.wixsite.com/blog/; to 
proxy_pass https://myblog.wixsite.com/blog/;

Observe que el protocolo es httpsen lugar de http. Tu blog de Wix se sirve en HTTPS de todos modos.

Respuesta2

No es nginx el que envía el redireccionamiento, es el sitio web https://myblog.wixsite.com/blog/el que envía el redireccionamiento, nginx solo representa la respuesta que recibe del sitio.

información relacionada