关于varnish负载均衡的问题
最近在研究varnish,在测试的时候,发现一些奇怪的问题,贴出来看下大家有没有遇到过,如下:
首先我是用了三台虚拟机
varnish ip:192.168.0.178
web1 ip:192.168.0.216
如果是random模式,如果weight(权重)一致都是2,那么它只会访问web1;
如果我把web2的权重改成不一致,那么它一直会访问权重高的,而不会访问其它权重低的机器,
如果我改成round-robin模式,则它一直只访问第一个服务器,其它的都不访问
我很奇怪,既然是负载均衡,它肯定会轮流的去访问服务器的,怎么会一直只访问第一个,
是我哪里设置的问题么???
求各位看官解惑!!
我用的varnish 3.0.3版本
首先我是用了三台虚拟机
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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
round-robin, 也是即是轮询处理。第一个请求到来时,如果第一台机器是空闲的,则使用第一台机器,否则换下一台。
因为你是测试环境,没有并发情况,故每次访问时,所有后端机器都是空闲的,当然会将请求转发给第一个机器。
当请求量较大(使用压力工具或真实的web环境),轮询调度算法自然就生效了。
这与LVS的轮询机制是完全一样的
round-robin, 也是即是轮询处理。第一个请求到来时,如果第一台机器是空闲的,则使用第一台机器,否则换下一台。
因为你是测试环境,没有并发情况,故每次访问时,所有后端机器都是空闲的,当然会将请求转发给第一个机器。
当请求量较大(使用压力工具或真实的web环境),轮询调度算法自然就生效了。
这与LVS的轮询机制是完全一样的