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

企业 - haproxy

[[email protected] examples]# yum install -y rpm-build   安装工具,生成rpm安装包

[[email protected] examples]# rpmbuild -bb haproxy.spec   执行出错,说是没有文件

企业 - haproxy

[[email protected] examples]# cp /root/haproxy-1.6.11.tar.gz /root/rpmbuild/SOURCES/   复制文件到所示路径

再次执行,如下有需要依赖性

企业 - haproxy

安装完依赖性后,正常执行

企业 - haproxy


执行完成后,rpm包生成

企业 - haproxy

[[email protected] x86_64]# rpm -ivh haproxy-1.6.11-1.x86_64.rpm  安装

企业 - haproxy



查看路径


将配置文件拷贝到如下路径

企业 - haproxy

[[email protected] haproxy]# mv content-sw-sample.cfg haproxy.cfg   重命名

新建用户

企业 - haproxy

查看

open files                      (-n) 1024
企业 - haproxy


企业 - haproxy

[[email protected] haproxy]# vim haproxy.cfg   修改配置文件

企业 - haproxy


[[email protected] haproxy]# vim /etc/sysctl.conf   修改参数

企业 - haproxy

[[email protected] haproxy]# vim /etc/security/limits.conf    修改文件

企业 - haproxy

查看open files 已改变

企业 - haproxy


修改配置文件

企业 - haproxy


企业 - haproxy

开启服务

企业 - haproxy

server2,3开启http服务

企业 - haproxy

企业 - haproxy

浏览器访问

http://192.168.122.11/admin/stats

企业 - haproxy

配置日志

[[email protected] haproxy]# vim /etc/rsyslog.conf

企业 - haproxy


企业 - haproxy


企业 - haproxy


[[email protected] haproxy]# /etc/init.d/rsyslog restart   开启服务

[[email protected] haproxy]# tail -f /var/log/haproxy.log   查看日志   刷浏览器出现日志

企业 - haproxy



[[email protected] haproxy]# vim haproxy.cfg     修改文件


企业 - haproxy


[[email protected] haproxy]# /etc/init.d/haproxy reload    重新加载

浏览器访问

输入  admin 用户

密码  cara


客户端测试

企业 - haproxy

当server2的http 服务关掉时

企业 - haproxy


客户端载此访问时,如下显示



eg1

[[email protected] haproxy]# vim haproxy.cfg 

企业 - haproxy


[[email protected] haproxy]# /etc/init.d/haproxy reload  加载
客户端测试

eg2

[[email protected] haproxy]# vim haproxy.cfg 

企业 - haproxy


[[email protected] haproxy]# /etc/init.d/haproxy reload

测试

企业 - haproxy


[[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  开启服务

企业 - haproxy

编辑页面

[[email protected] html]# cat index.html
<h1>I'am cara</h1>


eg3

修改配置文件

[[email protected] haproxy]# vim haproxy.cfg

企业 - haproxy

[[email protected] haproxy]# /etc/init.d/haproxy reload   修改完,重新加载

浏览器访问

企业 - haproxy

eg4

[[email protected] haproxy]# vim haproxy.cfg

企业 - haproxy

[[email protected] haproxy]# /etc/init.d/haproxy reload

企业 - haproxy


eg5

server3

[[email protected] ~]# yum install -y php   安装php

企业 - haproxy

[[email protected] haproxy]# vim haproxy.cfg 

企业 - haproxy


[[email protected] haproxy]# /etc/init.d/haproxy reload    

浏览器

企业 - haproxy




[[email protected] html]# mkdir images  创建目录

[[email protected] haproxy]# vim haproxy.cfg

企业 - haproxy


[[email protected] haproxy]# /etc/init.d/haproxy reload
浏览器

http://192.168.122.11/images/redhat.jpg

企业 - haproxy