haproxy负载均衡器后续篇-凯发app官方网站

凯发app官方网站-凯发k8官网下载客户端中心 | | 凯发app官方网站-凯发k8官网下载客户端中心
  • 博客访问: 537137
  • 博文数量: 48
  • 博客积分: 1249
  • 博客等级: 中尉
  • 技术积分: 1926
  • 用 户 组: 普通用户
  • 注册时间: 2010-12-04 10:22
文章存档

2012年(3)

(45)

相关博文
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·

分类: 系统运维

2011-12-15 10:47:33

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。

    虽然我们看haproxy的官方文档确实配置内容比较多,但其实我们用于线上环境,仅此几条就够用了,这也是大家说haproxy简单的原因,haproxy的对应配置文件如下所示: 

  1. global 
  2.         log 127.0.0.1   local0 
  3.         maxconn 4096 
  4.         chroot /usr/local/haproxy 
  5.         uid 99   
  6.         gid 99 
  7.         daemon 
  8.         nbproc 1 
  9.         pidfile /usr/local/haproxy/logs/haproxy.pid 
  10.         debug 
  11. defaults 
  12.         log     127.0.0.1       local3 
  13.         mode    http 
  14.         option httplog 
  15.         option httpclose 
  16.         option dontlognull 
  17.         option forwardfor 
  18.         option redispatch 
  19.         retries 2 
  20.         maxconn 2000 
  21.         balance source 
  22.         stats   uri     /haproxy-stats 
  23.         contimeout      5000 
  24.         clitimeout      50000 
  25.         srvtimeout      50000 
  26.     listen 1paituan_proxy 203.93.236.149:80 
  27.         option httpchk head /index.jsp http/1.0 
  28.         server web1  203.93.236.147:80 cookie app1inst1 check inter 2000 rise 2 fall 1 
  29.      server web2  203.93.236.146:80 cookie app1inst2 check inter 2000 rise 2 fall 1 

加上日志支持,如下所示:

  1. #vim /etc/syslog.conf 
  2. 添加: 
  3. local3.*        /var/log/haproxy.log 
  4. local0.*        /var/log/haproxy.log 
  5. #vim /etc/sysconfig/syslog 
  6. 修改: 
  7. syslogd_options="-r -m 0" 
  8. service syslog restart 

这里要注意的几个地方是:

一、haproyx采用的是balance source机制,它跟lvspersistentnginxip_hash一样,是让客户机访问时始终访问后端的某一台真实的web服务器;

二、203.93.236.149是我的网站通过keepalived生成的vip地址;

三、 option httpchk head /index.jsp http/1.0 是网页临近,如果haproxy检测不到web的根目录下没有index.jsp,就会产生503报错。

haproxy keepalived/heartbeat是我网站的第二套方案,因为刚开始网站上的lvs keepalived高可用架构,后来几个朋友说用手机测试时,转发很慢,有时打不开,甚有的电脑也是这样,我尝试了以下确实如此;所以用了haproxy keepalived以后发现转发速度确实快多了,手机上一拍网也没有这个问题了,由于haproxy keepalived在东莞的客户那里已经部署得很成功了,所以后期我也考虑将此网站设计成haproyx keepalived这种架构的。

haproxy的算法有如下8种:

一、roundrobin,表示简单的轮询,这个不多说,这个是负载均衡基本都具备的;

二、static-rr,表示根据权重,建议关注;

三、leastconn,表示最少连接者先处理,建议关注;

四、source,表示根据请求源ip,建议关注;

五、uri,表示根据请求的uri

六、url_param,表示根据请求的url参数'balance url_param' requires an url parameter name

七、hdr(name),表示根据http请求头来锁定每一次http请求;

八、rdp-cookie(name),表示根据据cookie(name)来锁定并哈希每一次tcp请求。

其实这些算法各有各的用法,我们平时应用得比较多的应该是roundrobinsourcelestconn,大家可以重点关注下。这里我用haproxy keepalived时没有考虑haproxy进程级别的高ha,一来是因为淘宝也在用它作为负载均衡器,稳定性肯定不需要怀疑;二来在测试时发现确实相当的稳定,杀掉haproxy进程还必须用kill -9,所以没有在这上面浪费时间了;在测试时也确实考虑过用haproxy keepalived做双主架构,后来发现不是太好维护就算了。

有一点要提醒大家,haproxy是支持虚拟主机的,我以前看过有些朋友说它是不支持的,这个其实很好验证,我们做个1 1的架构,后面随便放台nginxaapcehweb服务器就可能验证这种说法了;另外,经过与nginx的正则对比,我们也确实发现haproxy的正则处理能力上不如nginx的强大和灵活的,我们这里也可以采取一个折衷的方案,后面的web服务器我们都用nginx来作,如果是jsp应用,可以用nginx tomat,如果是跑php的,可以用nginx fastcgiphp5)。

余洪春(抚琴煮酒),《构建高可用的linux服务器》一书作者,一拍网系统架构师、资深项目管理工程师,chinaunix集群和高可用版版主。

阅读(2626) | 评论(1) | 转发(3) |
给主人留下些什么吧!~~

2011-12-15 23:48:11

通过keepalived生成的vip地址?好强大!

|
")); function link(t){ var href= $(t).attr('href'); href ="?url=" encodeuricomponent(location.href); $(t).attr('href',href); //setcookie("returnouturl", location.href, 60, "/"); }
网站地图