HAProxy
一、HAProxy简介
(1)HAProxy
是一款提供高可用性、负载均衡以及基于TCP(第四层)和HTTP(第七层)应用的代理软件,支持虚拟主机,它是免费、快速并且可靠的一种解决方案。
HAProxy特别适用于那些负载特大的web站点,这些站点通常又需要会话保持或七层处理。HAProxy运行在时下的硬件上,完全可以支持数以万计的
并发连接。并且它的运行模式使得它可以很简单安全的整合进您当前的架构中, 同时可以保护你的web服务器不被暴露到网络上。
(2)HAProxy 实现了一种事件驱动、单一进程模型,此模型支持非常大的并发连接数。多进程或多线程模型受内存限制
、系统调度器限制以及无处不在的锁限制,很少能处理数千并发连接。事件驱动模型因为在有更好的资源和时间管理的用户端(User-Space)
实现所有这些任务,所以没有这些问题。此模型的弊端是,在多核系统上,这些程序通常扩展性较差。这就是为什么他们必须进行优化以
使每个CPU时间片(Cycle)做更多的工作。
(3)HAProxy 支持连接拒绝 : 因为维护一个连接的打开的开销是很低的,有时我们很需要限制攻击蠕虫(attack bots),也就是说限制它们的连接打开从而限制它们的危害。 这个已经为一个陷于小型DDoS攻击的网站开发了而且已经拯救
了很多站点,这个优点也是其它负载均衡器没有的。
(4)HAProxy 支持全透明代理(已具备硬件防火墙的典型特点): 可以用客户端IP地址或者任何其他地址来连接后端服务器. 这个特性仅在Linux 2.4/2.6内核打了cttproxy补丁后才可以使用. 这个特性也使得为某特殊服务器处理部分流量同时又不修改服务器的地址成为可能。
二、实验
环境
server1 haproxy主机
server2 http服务
server3 http服务
server1
[[email protected] examples]# yum install -y rpm-build 安装工具,生成rpm安装包
[[email protected] examples]# rpmbuild -bb haproxy.spec 执行出错,说是没有文件
[[email protected] examples]# cp /root/haproxy-1.6.11.tar.gz /root/rpmbuild/SOURCES/ 复制文件到所示路径
再次执行,如下有需要依赖性
安装完依赖性后,正常执行
执行完成后,rpm包生成
[[email protected] x86_64]# rpm -ivh haproxy-1.6.11-1.x86_64.rpm 安装
查看路径
将配置文件拷贝到如下路径
[[email protected] haproxy]# mv content-sw-sample.cfg haproxy.cfg 重命名
新建用户
查看
open files (-n) 1024
[[email protected] haproxy]# vim haproxy.cfg 修改配置文件
[[email protected] haproxy]# vim /etc/sysctl.conf 修改参数
[[email protected] haproxy]# vim /etc/security/limits.conf 修改文件
查看open files 已改变
修改配置文件
开启服务
server2,3开启http服务
浏览器访问
http://192.168.122.11/admin/stats
配置日志
[[email protected] haproxy]# vim /etc/rsyslog.conf
[[email protected] haproxy]# /etc/init.d/rsyslog restart 开启服务
[[email protected] haproxy]# tail -f /var/log/haproxy.log 查看日志 刷浏览器出现日志
[[email protected] haproxy]# vim haproxy.cfg 修改文件
[[email protected] haproxy]# /etc/init.d/haproxy reload 重新加载
浏览器访问
输入 admin 用户
密码 cara
客户端测试
当server2的http 服务关掉时
客户端载此访问时,如下显示
eg1
[[email protected] haproxy]# vim haproxy.cfg
[[email protected] haproxy]# /etc/init.d/haproxy reload 加载
客户端测试
eg2
[[email protected] haproxy]# vim haproxy.cfg
[[email protected] haproxy]# /etc/init.d/haproxy reload
测试
[[email protected] haproxy]# yum install -y httpd 安装http服务
[[email protected] haproxy]# vim /etc/httpd/conf/httpd.conf
[[email protected] haproxy]# /etc/init.d/httpd start 开启服务
编辑页面
[[email protected] html]# cat index.html
<h1>I'am cara</h1>
eg3
修改配置文件
[[email protected] haproxy]# vim haproxy.cfg
[[email protected] haproxy]# /etc/init.d/haproxy reload 修改完,重新加载
浏览器访问
eg4
[[email protected] haproxy]# vim haproxy.cfg
[[email protected] haproxy]# /etc/init.d/haproxy reload
eg5
server3
[[email protected] ~]# yum install -y php 安装php
[[email protected] haproxy]# vim haproxy.cfg
[[email protected] haproxy]# /etc/init.d/haproxy reload
浏览器
[[email protected] html]# mkdir images 创建目录
[[email protected] haproxy]# vim haproxy.cfg
[[email protected] haproxy]# /etc/init.d/haproxy reload
浏览器
http://192.168.122.11/images/redhat.jpg
原文地址:http://blog.51cto.com/13362895/2083811