关于如何使用Haproxy搭建集群

首先,老生常谈的聊一下,到底什么是Haproxy呢————乍一看很哈人啊,全是英文,莫慌莫慌,百度一下,先了解了解嘛,了解完说不定印象就有所改观咯。Haproxy,走你!

什么是Haproxy

HAProxy是一个使用C语言编写的自由及开放源代码软件,其提供高可用性负载均衡,以及基于TCPHTTP的应用程序代理。     又是负载均衡又是高可用 老熟人啊!

HAProxy特别适用于那些负载特大的web站点,这些站点通常又需要会话保持或七层处理。HAProxy运行在当前的硬件上,完全可以支持数以万计的并发连接。并且它的运行模式使得它可以很简单安全的整合进您当前的架构中, 同时可以保护你的web服务器不被暴露到网络上。

HAProxy实现了一种事件驱动单一进程模型,此模型支持非常大的并发连接数多进程或多线程模型受内存限制 、系统调度器限制以及无处不在的锁限制,很少能处理数千并发连接。事件驱动模型因为在有更好的资源和时间管理的用户空间(User-Space) 实现所有这些任务,所以没有这些问题。此模型的弊端是,在多核系统上,这些程序通常扩展性较差。这就是为什么他们必须进行优化以 使每个CPU时间片(Cycle)做更多的工作。

包括 GitHubBitbucket、Stack Overflow、RedditTumblrTwitter 和 Tuenti 在内的知名网站,及亚马逊网络服务系统都使用了HAProxy。 

 接下来,我们来嗦一哈

Haproxy作为高性能负载均衡器的主要优点到底有哪些呢

能够让国内外那么多知名特大网站对他情有独钟呢???到底是为什么呢?

 

关于Haproxy的算法介绍

三种web集群调度器的差别

 我还搬运了知乎上一些相关回答(如何比较haproxy和nginx的居多)也贴在此处,供各位一观

 

 那么理论也看完了,各位大佬的不同意见也贴出来供各位一观了,现在我们就要开始干正事咯:正所谓亲自动手方可熟能生巧 来部署一哈吧!

Haproxy集群部署

部署Haproxy服务器

[root@ha ~]# tar zxvf haproxy-1.5.19.tar.gz
[root@ha ~]# yum install -y pcre-devel bzip2-devel gcc gcc-c++ make

 

[root@ha haproxy-1.5.19]# make TARGET=linux2628 ARCH=x86_64	//指定内核版本和系统位数,2.6.18-371.e15,此时该参数用TARGET=linux26;kernel大于2.6.28的用TARGET=linux2628
[root@ha haproxy-1.5.19]# make install

 

[root@ha haproxy-1.5.19]# mkdir /etc/haproxy
[root@ha haproxy-1.5.19]# cp examples/haproxy.cfg /etc/haproxy/
[root@ha haproxy-1.5.19]# cd /etc/haproxy/
[root@ha haproxy]# vim haproxy.cfg 
global
        log /dev/log    local0 info		//local0为日志设备,默认存放到系统日志
        log /dev/log    local0 notice
        #log loghost    local0 info
        maxconn 4096			//最大连接数,可以用ulimit -n限制
#       chroot /usr/share/haproxy		//将这行注释
        uid 99					//用户UID
        gid 99					//用户GID
        daemon					//守护进程模式
        #debug
        #quiet

defaults
        log     global			//定义日志为global配置中的日志定义
        mode    http			//模式是http
        option  httplog			//采用http日志格式记录日志
        option  dontlognull		//不记录健康检查日志信息
        retries 3				//检查节点服务器失败次数,连续达到三次失败,则认为节点不可用
        redispatch				//当服务器负载很高时,自动结束当前队列处理比较久的连接
        maxconn 2000			//最大连接数
        contimeout      5000	//连接超时时间
        clitimeout      50000	//客户端超时时间
        srvtimeout      50000	//服务器超时时间
listen  webcluster 0.0.0.0:80
        option httpchk GET /test.html	//检查服务器的test.html文件
        balance roundrobin		//负载均衡调度算法使用轮询算法
        server  inst1 12.0.0.10:80  check inter 2000 fall 3		//定义在线节点
        server  inst2 12.0.0.13:80  check inter 2000  fall 3
//check inter 2000		//表示haproxy服务器和节点之间的一个心跳频率
//fall 3				//表示连续三次检测不到心跳频率则认为该节点失效

 

[root@ha ~]# cp haproxy-1.5.19/examples/haproxy.init /etc/init.d/haproxy
[root@ha ~]# cd /etc/init.d/
[root@ha init.d]# ls
functions  haproxy  jexec  netconsole  network  README
[root@ha init.d]# chmod +x haproxy 
[root@ha init.d]# chkconfig --add /etc/init.d/haproxy 
[root@ha init.d]# ln -s /usr/local/sbin/haproxy /usr/sbin/haproxy
[root@ha haproxy]# service haproxy start 
Starting haproxy (via systemctl):                          [  确定  ]

 部署nginx服务

点开看看吧!

 

 

[root@nginx01 ~]# echo "this is jd" > /usr/local/nginx/html/test.html
[root@nginx02 ~]# echo "this is taobao" > /usr/local/nginx/html/test.html

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值