我有一个网站,想要在' / blog'下托管一个wordpress博客(托管在不同的实例上)。 我正在使用具有以下配置的nginx代理
location ^~ /blog
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_http_version 1.1;
proxy_pass 11.111.11.111
proxy_redirect off;
}
我还修改了wordpress设置 - >一般
WordPress地址(网址) - http://mywebsite.com/blog
网站地址(网址) - http://mywebsite.com/blog
' / blog'由于无法加载css和js,因此功能不全。
任何人都知道如何做到这一点。我在这个问题上看过很多帖子,但都没有解决我的问题。 感谢。
答案 0 :(得分:2)
您可能缺少从公共URI /blog
到上游URI /
的映射。
您可以使用location
和proxy_pass
指令通过在proxy_pass
语句中附加URI来执行此功能。有关详细信息,请参阅this document。例如:
location ^~ /blog/ {
proxy_pass http://192.0.2.0/;
}
根据您的整体配置,以上内容可能会阻止URL //example.com/blog
(即没有尾随/
)被正确转发,在这种情况下(1)添加一个特定的位置块来处理单个案例,或(2)将rewrite ... break
添加到上面的位置块。
选项(1)示例(添加到上面):
location = /blog { rewrite ^ /blog/ last; }
选项(2)示例:
location ^~ /blog {
rewrite ^/blog(?:/(.*))?$ /$1 break;
proxy_pass http://192.0.2.0;
}
在第二个选项中,别名函数被移动到rewrite
语句,而proxy_pass
没有附加URI。有关详细信息,请参阅this document。