![Nginx envía 301 cuando usa proxy_pass](https://rvso.com/image/769279/Nginx%20env%C3%ADa%20301%20cuando%20usa%20proxy_pass.png)
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_redirect
o cambiar
proxy_pass http://myblog.wixsite.com/blog/; to
proxy_pass https://myblog.wixsite.com/blog/;
Observe que el protocolo es https
en 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.