前言: lvs 和 haproxy 的区别
lvs:
1 抗负载能力强是工作在网络 4 层之上仅作分发之用, 没有流量的产生;
2 无流量, 保证了均衡器 IO 的性能不会收到大流量的影响;
3 应用范围比较广, 因为 LVS 工作在 4 层, 所以它几乎可以对所有应用做负载均衡
4 工作稳定, 因为其本身抗负载能力很强, 自身有完整的双机热备方案,
如 LVS+Keepalived, 不过我们在项目实施中用得最多的还是 LVS/DR+Keepalived
Haproxy:
1HAProxy 也是支持虚拟主机的
HAProxy 跟 LVS 类似, 本身就只是一款负载均衡软件, 基于七层;
2 单纯从效率上来讲 HAProxy 会比 Nginx 有更出色的负载均衡速度,
在并发处理上也是优于 Nginx 的;
3HAProxy 支持 TCP 协议的负载均衡转发,
可以对 MySQL 读进行负载均衡, 对后端的 MySQL 节点进行检测和负载均衡
准备工作:
1 准备四台主机: IP 地址规划是
4.49,4.50(haproxy),4.51(web),4.52(web)
2 在 4.50 上安装 haproxy 软件, 在 4.51 和 4.52 上
安装 httpd 软件
一普通 LB 集群
1 修改配置文件: vim /etc/haproxy/haproxy.cfg
把 60 行以下的内容全部删除, 增加下面的内容
- stats uri /admin
- 60 listen lbweb 0.0.0.0:80
- 61 cookie SERVERID rewrite
- 62 balance roundrobin
- 63 server web51 192.168.4.51:80 cookie app51 check inter 2000 rise 2 fall 5
- 64 server web52 192.168.4.52:80 cookie app52 check inter 2000 rise 2 fall 5
2 可以去页面查看健康性: http://192.168.4.50/admin
3 测试: 停掉其中一台 web 服务器, 去后台查看后台的 session 会话的次数
二区分业务的 LB 集群
1 用四台服务器测试
4.51 和 4.52 做 html 负载, 4.53 和 4.54 做 php 的负载
2 上面 4.51 和 4.52 已经做好了, 现在把 4.53 和 4.54 做好 php 的网站
3 修改配置文件: vim /etc/haproxy/haproxy.cfg
- stats uri /admin
- #---------------------------------------------------------------------
- # main frontend which proxys to the backends
- #---------------------------------------------------------------------
- frontend weblb 192.168.4.100:80
- # acl url_static path_beg -i /static /images /javascript /stylesheets
- acl path_html path_end -i .html
- acl path_php path_end -i .php
- use_backend htmlg if path_html
- use_backend phpg if path_php
- default_backend htmlg
- #---------------------------------------------------------------------
- # static backend for serving up images, stylesheets and such
- #---------------------------------------------------------------------
- #backend static
- # balance roundrobin
- # server static 127.0.0.1:4331 check
- #---------------------------------------------------------------------
- # round robin balancing between the various backends
- #---------------------------------------------------------------------
- backend htmlg
- balance roundrobin
- server app101 192.168.4.101:80 check
- server app102 192.168.4.102:80 check
- backend phpg
- balance roundrobin
- server app103 192.168.4.103:80 check
- server app104 192.168.4.104:80 check
4 保存配置, 重启服务, 测试:
在四台服务器上分别放上 test.html 和 test.php 网页文件
在客户端分别测试, 可以得出预期的结果
来源: http://www.bubuko.com/infodetail-2527782.html