haproxy安装及配置

一、haproxy简介
HAProxy是一个使用C语言编写的自由及开放源代码软件[1],其提供 高可用性负载均衡,以及基于 TCPHTTP的应用程序 代理
HAProxy特别适用于那些负载特大的web站点,这些站点通常又需要会话保持或七层处理。HAProxy运行在当前的硬件上,完全可以支持数以万计的 并发连接。并且它的运行模式使得它可以很简单安全的整合进您当前的架构中, 同时可以保护你的web服务器不被暴露到网络上。
HAProxy实现了一种 事件驱动, 单一进程模型,此模型支持非常大的并发连接数。 多进程或多线程模型受内存限制 、系统调度器限制以及无处不在的锁限制,很少能处理数千并发连接。 事件驱动模型因为在有更好的资源和时间管理的用户空间(User-Space) 实现所有这些任务,所以没有这些问题。此模型的弊端是,在多核系统上,这些程序通常扩展性较差。这就是为什么他们必须进行优化以 使每个CPU时间片(Cycle)做更多的工作。
包括 GitHubBitbucket[3]、Stack Overflow[4]、 RedditTumblrTwitter[5][6]和 Tuenti[7]在内的知名网站,及亚马逊网络服务系统都使用了HAProxy。


二 安装
源码可到此地址下载:http://download.chinaunix.net/download/0013000/12508.shtml

# 解压
tar -zxvf haproxy-1.3.20 .tar.gzcd haproxy-1.3.20
# 安装
make TARGET=linux2628 ARCH=x86_64 PREFIX=/usr/local/ haproxy
make install PREFIX=/usr/local/ haproxy
# 参数说明
TARGET=linux26 # 内核版本,使用uname -r查看内核,如:2.6.18-371.el5,此时该参数就为linux26;kernel 大于2.6.28的用:TARGET=linux2628

ARCH=x86_64 # 系统位数
PREFIX=/usr/local/haprpxy # /usr/local/haprpxy为haprpxy安装路径

三 配置
安装完毕后,进入安装目录配置文件,默认情况下目录里是没有.cfg配置文件的,可以回到安装文件目录下将examples下的haproxy.cfg拷贝到usr/local/haproxy下。

# this config needs haproxy-1.1.28 or haproxy-1.2.1

global
 log 127.0.0.1 local0 #日志输出配置,所有日志都记录在本机,通过local0输出
 log 127.0.0.1 local1 notice #定义日志级别[error warring info debug]
 maxconn 4096 #最大连接数,需考虑ulimit -n 限制
 chroot /usr/local/haproxy #chroot运行路径 
 uid 99 #以什么身份运行进程
 gid 99
#user haproxy 运行haproxy的用户
#group haproxy 运行haproxy的组
 daemon #以后台形式运行haproxy
        nbproc 2 #设置进程数量
        pidfile /usr/local/haproxy/haproxy.pid #进程pid文件路径
 #debug #haproxy调试级别,建议只在开启单进程的时候启动调试
 #quiet

defaults
 log global
        log     127.0.0.1     local3
 mode http #默认的模式mode {tpc|http|health},tcp是4层,http是7层,health只会返回ok
 option httplog #日志级别,采用httplog
 option dontlognull #不记录健康检查日志信息
        option  forwardfor #如果后端服务器需要获得客户机真实IP需要配置的参数,可以从Http Header中获取客户端ip
        option  httpclose #每次请求完毕后主动关闭http通道,haproxy不支持keep-alive,只能模拟这种模式的实现

retries 3 #三次连接失败就认为是服务器不可用,也可以通过后面设置
 option  redispatch #当serverid对应的服务器挂掉后,强制定向到其他健康的服务器,以后将不支持
 maxconn 2000 #最大连接数
        
 contimeout 5000 #连接超时
 clitimeout 50000 #客户端超时
 srvtimeout 50000 #服务器超时
 stats uri  /stats #统计页面url
 stats  auth     frank:frank #设置监控页面的用户和密码
 stats  hide-version #隐藏统计页面上Haproxy的版本信息
 stats  refresh 30s

###设置haproxy错误页面
#errorfile 403 /etc/haproxy/403.http 
#errorfile 500 /etc/haproxy/500.http 
#errorfile 502 /etc/haproxy/502.http 
#errorfile 503 /etc/haproxy/503.http 

#errorfile 504 /etc/haproxy/504.http 


frontend main
        bind *:80 #这里建议使用bind *:80的方式,要不然做集群高可用的时候有问题,vip切换到其他机器上就不能访问了
        acl web hdr(host) -i bbs.king.org #acl后面是规则名称,-I为忽略大小写,后面跟的是要访问的域名,如果访问www.king.org这个域名,就触发web规则
        use_backend webserver if web #如果上面定义的web规则被触发,即访问www.king.org,就将请求分发到webserver这个作用域
        default_backend dynamic #不满足则相应backend的默认页面

backend webserver #webserver作用域
        mode http #使用http模式
        balance roundrobin #负载均衡模式,roundrobin负载轮询,balance source保存session值,支持static-rr,leastconn,first,uri等参数
        option httpchk GET /index.html #健康检查 ,如果访问不到index.html就不分发给它
        server web1 192.168.154.130:80 check inter 2000 fall 3
        server web1 192.168.154.131:80 check inter 2000 fall 3

backend dynamic
        mode http
        balance roundrobin
        option httpchk GET /index.html
        server web3 192.168.154.132:80 check inter 2000 fall 3
        server web4 192.168.154.133:80 check inter 2000 fall 3


option httpclose :HAProxy会针对客户端的第一条请求的返回添加cookie并返回给客户端,客户端发送后续请求时会发送

此cookie到HAProxy,HAProxy会针对此cookie分发到上次处理此请求的服务器上,如果服务器不能忽略

此cookie值会影响处理结果。如果避免这种情况配置此选项,防止产生多余的cookie信息。






  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值