gpt4 book ai didi

virtualhost - 通过 Varnish 的多个虚拟主机,如果服务不正确的后端

转载 作者:行者123 更新时间:2023-12-03 17:45:07 26 4
gpt4 key购买 nike

我设置了几个后端,每个后端都在 VCL 中检测到,然后应用了正确的设置。这适用于某些站点,但有一些站点指向同一个站点。

我已经阅读并应用了它,它适用于某些人,但不适用于其他人。

Configure multiple sites with Varnish

例如,我定义了一些后端:

backend site4 {
.host = "127.0.0.1";
.port = "81";
}

backend site3 {
.host = "127.0.0.1";
.port = "81";
}

backend site2 {
.host = "127.0.0.1";
.port = "81";
}

backend site1 {
.host = "127.0.0.1";
.port = "81";
}

然后在 vcl_recv我设置了主机和正确的后端:
if (req.http.host ~ "(?i)^(www.)?site1.co.uk") 
{
set req.http.host = "www.site1.co.uk";
set req.backend = site1;
}
elsif (req.http.host ~ "(?i)^(www.)?site2.co.uk")
{
set req.http.host = "www.site2.co.uk";
set req.backend = site2;
}
elsif (req.http.host ~ "(?i)^(www.)?site3.com")
{
set req.http.host = "www.site3.com";
set req.backend = site3;
}
elsif (req.http.host ~ "(?i)^(www.)?site4.net")
{
set req.http.host = "www.site4.net";
set req.backend = site4;
}

www.site1.co.uk 和 www.site2.co.uk 一样有效,但 www.site3.com 和 www.site4.net 都显示 www.site2.co.uk 的内容 - 就像它忽略了我的后端并且只是在某些网站上使用相同的。

主机设置正确,因为如果我这样做:
curl -I http://site3.com

vcl_fetch 中使用以下内容时
set beresp.http.X-Host = req.http.host;  

我可以看到主机正确设置为 www.site3.com

任何人的想法?

旁注,是否有更短的方法来定义我的后端?

最佳答案

顺便说一句,如果您在同一后端服务器上有站点,那么您不需要为每个站点定义新的后端。

关于virtualhost - 通过 Varnish 的多个虚拟主机,如果服务不正确的后端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12068432/

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