我读过这篇文章,但我无法使我的案例奏效 https://stackoverflow.com/questions/3334023/configure-multiple-sites-with-varnish
这是我的问题
我有 2 个域名:mysite1.com 和 mysite2.com
这是我在 default.vcl 中的配置
backend default {
.host = "127.0.0.1";
.port = "8080";
}
backend mysite2 {
.host = "127.0.0.1";
.port = "8080";
}
sub vcl_recv {
if (req.http.host == "mysite1.com" || req.http.host == "www.mysite1.com") {
set req.backend = default;
} elsif (req.http.host == "mysite2.com" || req.http.host == "www.mysite2.com") {
set req.backend = mysite2;
}
}
现在 ngix 配置在 /etc/ngix/site-avaiable/mysite2 中
server {
server_name mysite2.com;
#server_name localhost;
listen 127.0.0.1:8080;
root /home/mysite2/sites/mysite2
// some bla bla here
}
我的问题是,每当我尝试连接到 mysite2.com 时,所有内容都会移动到 mysite1.com。
如果我关闭清漆,一切都正常,但是当我打开它时,我收到这个错误,我认为我的配置不正确,但我不知道为什么,有人有这方面的经验吗?
答案1
您的 nginx 和 varnish 配置中的监听器有重叠。
如果 Varnish 监听 8080,则需要 Nginx 监听 80 端口,并将请求发送到 8080。具体做法如下声明proxy_pass
。