我一直在VPS上部署基于Apache2的mediawiki docker容器(appscontainer / mediawiki),我在其上面安装了一个全新的Varnish,以便能够将不同的子域代理到相同的应用程序上服务器
我当前的default.vcl配置文件如下所示:
backend default {
.host = "127.0.0.1";
.port = "8080";
}
backend wikimedia {
.host = "localhost";
.port = "8080";
}
sub vcl_recv {
if(req.http.host == "wiki.virtual-assembly.org") {
set req.backend_hint = wikimedia;
}
set req.backend_hint = default;
}
我的问题是,当我请求URL http://wiki.virtual-assembly.org时,我通过301重定向到端口8080(apache2实例正在侦听的端口)上的服务器的IP地址。
有没有办法告诉Varnish将位置保持为http://wiki.virtual-assembly.org,还是apache2配置错误?
提前致谢,
PS:我知道我的两个后端是等效的,我将在未来部署更多应用时更改默认值。
答案 0 :(得分:0)
在黑暗的答案中拍摄。如果你将默认的backend_req放入else语句而不是if之外,你仍然得到301吗?