【问题标题】:How to set up Varnish in a dedicated server with mutiple IPs and domains?如何在具有多个 IP 和域的专用服务器中设置 Varnish?
【发布时间】:2017-01-13 08:40:01
【问题描述】:

我有一个包含许多域的专用服务器。有些域有自己的专用 IP,有些 IP 由域共享。

我想为所有域和 IP 设置清漆。

服务器:CentOS 7.2 和 cPanel 11.58

你知道任何 cpanel 插件吗?或简单的代码或有效的方法,可以自动/轻松地为所有域/IP 设置清漆。

安装清漆后,我将apache端口更改为“8080”。我在 varnish.params 中将端口更改为“80”,在 default.vcl 中更改为“8080”。现在 varnish 适用于服务器的主 IP 和域。

我尝试通过以下方法修改 default.vcl,但之后当我尝试加载时,varnish 会出错。我很困惑并尝试了很多方法来解决它,但不幸的是没有任何效果。

backend example1 {
    .host = "5.135.166.39";
    .port = "8080";
}

backend example2 {
    .host = "46.105.40.241";
    .port = "8080";
}
sub vcl_recv {

    if (server.ip == "5.135.166.39") {
        set req.backend = example1; 
    } elseif (server.ip == "46.105.40.241") {
        set req.backend = example2;
    } else {
        set req.backend = default;
    }
}

【问题讨论】:

    标签: apache caching centos cpanel varnish


    【解决方案1】:

    您需要通过域名本身而不是其 ip 来定义您的条件。所以假设你有 2 个域:

    www.foo.comA record 5.135.166.39 www.bar.comA record 46.105.40.241

    vcl_recv 中,您需要执行以下操作:

    if (req.http.host ~ "foo.com") {
        set req.backend = example1;
    }
    
    if (req.http.host ~ "bar.com") {
        set req.backend = example2;
    }
    

    使用~ 匹配包含foo.bar 的任何网址,或者您可以使用== "www.foo.com" 仅匹配www.foo.combar.com 也是如此

    【讨论】:

      猜你喜欢
      • 2015-03-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-30
      • 1970-01-01
      • 2013-01-10
      • 1970-01-01
      • 2013-06-11
      相关资源
      最近更新 更多