我有一个在 AWS 上托管的网站,www.example.com。我在 Wix myblog.wixsite.com/blog 上创建了一个博客。现在,我想在www.example.com/blog。因此我使用以下 Nginx 配置来尝试实现该目的。
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;
}
现在,当我击中www.example.com/blog,Nginx 将我重定向到https://myblog.wixsite.com/blog/而不是显示内容www.example.com/blog本身。我也尝试更改
proxy_pass http://myblog.wixsite.com/blog/;
为,
proxy_pass https://myblog.wixsite.com/blog/;
但我开始收到以下错误。
*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"
我已经做了几天了,但没有任何结果。有人能告诉我我可能做错了什么吗?
答案1
要么使用proxy_redirect
或更改
proxy_pass http://myblog.wixsite.com/blog/; to
proxy_pass https://myblog.wixsite.com/blog/;
请注意,协议是https
而不是http
。无论如何,您的 wix 博客都是通过 HTTPS 提供的。
答案2
不是 nginx 发送重定向,而是网站https://myblog.wixsite.com/blog/
发送重定向,nginx 仅代理从网站获得的响应。