如何使用 Varnish 和 nginx 配置多个域名

如何使用 Varnish 和 nginx 配置多个域名

我读过这篇文章,但我无法使我的案例奏效 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

相关内容