关于varnish负载均衡的问题

发布于 2021-11-20 03:40:38 字数 972 浏览 869 评论 2

最近在研究varnish,在测试的时候,发现一些奇怪的问题,贴出来看下大家有没有遇到过,如下:
首先我是用了三台虚拟机
varnish ip:192.168.0.178
web1 ip:192.168.0.216

web2 ip:192.168.0.128

backend web1{
    .host = "192.168.0.216";
    .port = "80";
}
backend web2 {
    .host = "192.168.0.128";
    .port = "80";
}
director test_director random{
    {.backend = web1;.weight = 2;}
    {.backend = web2;.weight = 2;}
}
 
sub vcl_recv{
    if(req.http.host ~ "192.168.0.178"){
       set req.backend = test_director;
    }
    else{
        error 404 "Unknown host";
    }
}
我配置成功之后,然后访问varnish的那台机器ip,即:192.168.0.178
如果是random模式,如果weight(权重)一致都是2,那么它只会访问web1;
如果我把web2的权重改成不一致,那么它一直会访问权重高的,而不会访问其它权重低的机器,

如果我改成round-robin模式,则它一直只访问第一个服务器,其它的都不访问

我很奇怪,既然是负载均衡,它肯定会轮流的去访问服务器的,怎么会一直只访问第一个,

是我哪里设置的问题么???

求各位看官解惑!!

我用的varnish 3.0.3版本

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

惜醉颜 2021-11-23 04:06:28

round-robin, 也是即是轮询处理。第一个请求到来时,如果第一台机器是空闲的,则使用第一台机器,否则换下一台。

因为你是测试环境,没有并发情况,故每次访问时,所有后端机器都是空闲的,当然会将请求转发给第一个机器。

当请求量较大(使用压力工具或真实的web环境),轮询调度算法自然就生效了。

这与LVS的轮询机制是完全一样的

混吃等死 2021-11-21 23:28:29

round-robin, 也是即是轮询处理。第一个请求到来时,如果第一台机器是空闲的,则使用第一台机器,否则换下一台。

因为你是测试环境,没有并发情况,故每次访问时,所有后端机器都是空闲的,当然会将请求转发给第一个机器。

当请求量较大(使用压力工具或真实的web环境),轮询调度算法自然就生效了。

这与LVS的轮询机制是完全一样的

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文