haproxy

1.1、haproxy原理

haproxy提供高可用性、负载均衡以及基于TCP(第四层)和HTTP(第七层)应用的代理,支持虚拟主机,它是免费、快速并且可靠的一种解决方案。

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

haproxy实现了一种事件驱动、单一进程模型,此模型支持非常大的并发连接数。多进程或多线程模型受内存限制、系统调度器限制以及无处不在的锁限制,很少能处理数千并发连接。

事件驱动模型因为在有更好的资源和时间管理的用户端(User-Space)实现所有这些任务,所以没有这些问题。此模型的弊端是,在多核系统上,这些程序通常扩展性较差。这就是为什么他们必须进行优化以使每个CPU时间片(Cycle)做更多的工作。

1.2、haproxy的优点

(1)免费开源,稳定性也是非常好。单haproxy也跑得不错,稳定性可以与硬件级的F5相媲美。

(2)根据官方文档,haproxy可以跑满10Gbps,这个数值作为软件级负载均衡器是相当惊人的。

(3)haproxy支持连接拒绝:因为维护一个连接的打开的开销是很低的,有时我们很需要限制×××蠕虫(attack bots),也就是说限制它们的连接打开从而限制它们的危害。这个已经为一个陷于小型DDoS×××的网站开发了而且已经拯救了很多站点,这个优点也是其它负载均衡器没有的。

(4)haproxy支持全透明代理(已具备硬件防火墙的典型特点):可以用客户端IP地址或者任何其他地址来连接后端服务器。这个特性仅在Linux 2.4/2.6内核打了tcp proxy补丁后才可以使用。这个特性也使得为某特殊服务器处理部分流量同时又不修改服务器的地址成为可能。

(5)haproxy现多于线上的Mysql集群环境,我们常用于它作为MySQL(读)负载均衡。

(6)自带强大的监控服务器状态的页面,实际环境中我们结合Nagios进行邮件或短信报警。

(7)HAProxy支持虚拟主机,许多朋友说它不支持虚拟主机是错误的,通过测试我们知道,HAProxy是支持虚拟主机的。

二、实验环境 rhel6.5

server6 haproxy主机

server7 http服务

server8 http服务
[root@server6 ~]# tar zxf haproxy-1.6.11.tar.gz
[root@server6 ~]# cd ha
hadoop-2.7.3.tar.gz haproxy-1.6.11/ haproxy-1.6.11.tar.gz
[root@server6 ~]# cd haproxy-1.6.11
[root@server6 haproxy-1.6.11]# cd examples/
[root@server6 examples]# yum install -y rpm-build
[root@server6 examples]# rpmbuild -bb haproxy.spec
error: File /root/rpmbuild/SOURCES/haproxy-1.6.11.tar.gz: 没有那个文件或目录
提示没有这个文件:
[root@server6 examples]# cp /root/haproxy-1.6.11.tar.gz /root/rpmbuild/SOURCES/ 拷贝
[root@server6 examples]# rpmbuild -bb haproxy.spec error: Failed build dependencies:
pcre-devel is needed by haproxy-1.6.11-1.x86_64
再次运行提示错误,没装gcc
安装完在执行编译完成:
haproxy
[root@server6 examples]# cd
[root@server6 ~]# cd rpmbuild/
[root@server6 rpmbuild]# cd RPMS/
[root@server6 RPMS]# cd x86_64/
[root@server6 x86_64]# pwd
/root/rpmbuild/RPMS/x86_64
[root@server6 x86_64]# ls
haproxy-1.6.11-1.x86_64.rpm
[root@server6 x86_64]# rpm -ivh haproxy-1.6.11-1.x86_64.rpm
Preparing... ########################################### [100%]
1:haproxy ########################################### [100%]

haproxy
[root@server6 examples]# cp content-sw-sample.cfg /etc/haproxy/
[root@server6 examples]# cd /etc/haproxy/
[root@server6 haproxy]# mv content-sw-sample.cfg haproxy.cfg
改名
建用户:
[root@server6 haproxy]# grep 200 /etc/passwd
[root@server6 haproxy]# groupadd -g 200 haproxy
[root@server6 haproxy]# useradd -u 200 -g 200 haproxy
[root@server6 haproxy]# tail -l /etc/passwd
haproxy:x:200:200::/home/haproxy:/bin/bash
查看:
haproxy
haproxy
[root@server6 haproxy]# vim /etc/sysctl.conf

haproxy
[root@server6 haproxy]# vim /etc/security/limits.conf
haproxy
[root@server6 haproxy]# vim haproxy.cfg

haproxyhaproxy
[root@server6 haproxy]# /etc/init.d/haproxy start
Starting haproxy: [确定]
浏览器访问:http://172.25.35.6/admin/stats
haproxy
[root@server6 haproxy]# vim /etc/rsyslog.conf
haproxyhaproxy
[root@server6 haproxy]# /etc/init.d/rsyslog restart
关闭系统日志记录器: [确定]
启动系统日志记录器: [确定]
[root@server6 haproxy]# tail -f /var/log/haproxy.log
刷新网页出现日志:
haproxy
[root@server6 haproxy]# vim haproxy.cfg
haproxy
重新加载网页需要输帐号密码:帐号:admin 密码:redhat
物理机测试:
haproxy
停掉server8httpd
haproxy
[root@server6 haproxy]# vim haproxy.cfg
haproxy
物理机测试一下

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章