lvs、nginx、haproxy中转模式总结
一、LVS转发模式
LVS是章文嵩博士写的一个工作于四层的高可能性软件。不像后两者支持七层转发,不过也正因为其简单,所以其是最稳定的。其共有三种IP负载均衡技术:VS/NAT(Virtual Server via Network Address Translation)、VS/TUN(Virtual Server via IP Tunneling)和VS/DR(Direct Routing),三者之间具体的比较见下表
二、nginx负载模式
nginx有五种负载算法模式,分别是:轮询、weight(权重)、ip_hash、fair、url_hash 。现逐一说明:
- 轮询(默认): 每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。
- weight :指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。配置为:
- upstream bakend {
- server 192.168.0.14 weight=10;
- server 192.168.0.15 weight=10;
- }
- ip_hash:每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。配置为:
- upstream bakend {
- ip_hash;
- server 192.168.0.14:88;
- server 192.168.0.15:80;
- }
- fair:按后端服务器的响应时间来分配请求,响应时间短的优先分配。
- upstream backend {
- server server1;
- server server2;
- fair;
- }
- url_hash:按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。配置如:
- upstream backend {
- server squid1:3128;
- server squid2:3128;
- hash $request_uri;
- hash_method crc32;
- }
注:第五种模式下,需要注意在upstream中加入hash语句,server语句中不能写入weight等其他的参数,hash_method是使用的hash算法 。
server后面常接的参数有如下几个:
- down 表示单前的server暂时不参与负载
- weight 默认为1.weight越大,负载的权重就越大。
- max_fails :允许请求失败的次数默认为1.当超过最大次数时,返回proxy_next_upstream 模块定义的错误
- fail_timeout:max_fails次失败后,暂停的时间。
- backup: 其它所有的非backup机器down或者忙的时候,请求backup机器。所以这台机器压力会最轻。
三、haproxy
haproxy是三者之间负载算法最多的,有八种,所以其应用场景也是最多,配置也是最灵活的,具体8种算法为:
①roundrobin,表示简单的轮询,这个是负载均衡基本都具备的;
②static-rr,表示根据权重,和nginx的weight算法类似;
③leastconn,表示最少连接者先处理,有点类似于nginx的fair,不过fair是根据响应时间;
④source,表示根据请求源IP,这个跟Nginx的IP_hash机制类似,我们用其作为解决session问题的一种方法,建议关注;
⑤ri,表示根据请求的URI,类似于nginx的url_hash;
⑥rl_param,表示根据请求的URl参数'balance url_param' requires an URL parameter name;
⑦hdr(name),表示根据HTTP请求头来锁定每一次HTTP请求;
⑧rdp-cookie(name),表示根据据cookie(name)来锁定并哈希每一次TCP请求。
四、总结
具体现网应用可以根据据体的实际情况选择最好的负载方式。三者中,lvs稳定性最好,可配置性最少;nginx针对域名、目录结构进行正则匹配是最强的,同时其对网络依赖比较小,不过性能上和lvs和haproxy相比稍差一点点;haproxy支持虚拟主机,尤其在session保持方面做的最好,其有三种算法可以实现session共享———— ip识别(source)、cookie识别、session识别三种,除此之外在对mysql做HA方案时也经常会用到该软件。
以上就介绍了lvs、nginx、haproxy中转模式总结,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。
上一篇: PHP 数组按多个字段排序实现代码
推荐阅读
-
linux服务器之LVS、Nginx和HAProxy负载均衡器对比总结
-
lvs、haproxy、nginx 负载均衡的比较分析
-
lvs、haproxy、nginx 负载均衡的比较分析
-
(总结)Nginx/LVS/HAProxy负载均衡软件的优缺点详解
-
lvs、haproxy、nginx 负载均衡的比较分析
-
Nginx/LVS/HAProxy负载均衡软件的优缺点详解
-
nginx lvs haproxy负载优缺点比较 web proxyserver free web proxy在线 proxy server中文
-
lvs、nginx、haproxy中转模式总结
-
nginx lvs haproxy负载优缺点比较 web proxyserver free web proxy在线 proxy server中文
-
lvs、nginx、haproxy中转模式总结