首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在拥有多个IP和域名的专用服务器上设置Varnish?

如何在拥有多个IP和域名的专用服务器上设置Varnish?
EN

Stack Overflow用户
提问于 2016-09-06 10:13:08
回答 1查看 226关注 0票数 0

我有一个专用的服务器与许多域。有些域名有自己的专用IP,有些IP是域名共享的。

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

服务器:带cPanel 11.58的CentOS 7.2

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

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

我试着用下面的方法修改default.vcl,但是之后,当我尝试加载时,varnish给出了错误。我很困惑,并尝试了很多方法来解决它,但不幸的是都没有奏效。

代码语言:javascript
复制
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;
    }
}
EN

回答 1

Stack Overflow用户

发布于 2016-09-07 01:40:55

您需要根据域名本身来定义您的条件,而不是使用其ip。假设你有两个doamin:

采用A record 5.135.166.39 www.bar.comA record 46.105.40.241www.foo.com

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

代码语言:javascript
复制
if (req.http.host ~ "foo.com") {
    set req.backend = example1;
}

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

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39339685

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档