gpt4 book ai didi

apache - 如何在具有多个 IP 和域的专用服务器中设置 Varnish?

转载 作者:行者123 更新时间:2023-12-04 19:44:11 26 4
gpt4 key购买 nike

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

我想为所有域和 IP 设置 Varnish 。

服务器:CentOS 7.2 和 cPanel 11.58

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

安装 Varnish 后,我将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;
}
}

最佳答案

您需要通过域名本身而不是其 ip 来定义您的条件。所以假设你有 2 个域:
www.foo.comA record 5.135.166.39www.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 的 url或者您可以使用 == "www.foo.com"匹配 www.foo.com只是, bar.com 也是如此

关于apache - 如何在具有多个 IP 和域的专用服务器中设置 Varnish?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39339685/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com