HAProxy特别适用于那些负载特大的web站点,这些站点通常又需要会话保持或七层处理。HAProxy运行在当前的硬件上,完全可以支持数以万计的并发连接。并且它的运行模式使得它可以很简单安全的整合进您当前的架构中, 同时可以保护你的web服务器不被暴露到网络上。
-----来自百度百科
一、配置环境
1、解包,命令find -name *.spec有这个文件表示可以用源码软件包安装
2、安装rpmbuild服务,rpmbuild命令被用于创建rpm的二进制软件包和源码软件包
rpmbuild -tb haproxy-1..6.11.tar..gz
找到haproxy的rpm软件包,rpm -ivh安装
3、 cp content-sw-sample.cfg /etc/haproxy/haproxy.cfg去到haproxy目录下复制其配置文件到指定路径;
修改配置文件以到达我们的需要;
(1)根据配置文件,建立haproxy用户赋予指定uid、gid
(2)vim /etc/security/limits.conf 添加文件最大限制数 haproxy - nofile 65535
(3)更改配置文件如下图:实现一个负载均衡
查看端口信息;可以看到haproxy服务使用的80端口
访问测试:如图
根据日志可以查看其stats状态页,如下图
这里可以定义用户和密码
测试查看效果如图
二、创建指定日志文件
1、使UDP端口接收生效2、添加日志并指定日志保存路径,黑色选中表示在/var/log/messages下不保存
三、acl列表
1、建立acl黑名单,指定ip,更改配置文件,如下图
测试查看:403报错
2、错误重定向,将403报错给客户没实际作用,这里更改配置文件将错误重定向到本机的apache服务默认发布目录里的写入内容,记得将httpd的端口改为8080避免和haproxy服务冲突;如下图
访问测试如图,实现错误重定向
3、指定ip重定向,更改配置文件,如图
这里重定向ip是server4;我们server4测试查看:
四、动静分离
1、server3安装php 编辑动态页面 完成后restart httpd服务
2、编辑配置文件,如果访问以.php结尾的动态界面,实际访问的主机为server3;静态页面访问server2
测试查看
五、读写分离
1、server2 编写php文件完成 发送给serber3
2、server1编辑配置文件,如果有写入操作,访问动态server3主机
3、访问测试
上传一个图片如图
server3实现写 图片实际保存在server3上 读的时候访问的是server2;server3查看可以看到图片保存在server3上;实现读写分离
pacemaker
Pacemaker是一个 集群资源管理器。它利用集群基础构件(OpenAIS 、heartbeat或corosync)提供的消息和成员管理能力来探测并从 节点或资源级别的故障中恢复,以实现群集服务(亦称资源)的最大可用性。 ----来自百度百科
corosync+pacemaker+crm简单配置
1、server1和server4安装pacemaker crmsh.x86_64 pssh.x86_64
2、cp corosync.conf.example corosync.conf更改配置文件如下
文件末尾加入如图
3、servre1和server4:/etc/init.d/corosync start
4、scp corosync.conf server4:/etc/corosync/
5、server1:crm_verify -LV 有报错
crm configure show
property stonith-enabled=false 表示资源不会迁移
再次crm_verify -LV没有报错表示正常
6、加入vip
7、 crm_mon监控集群和vip信息
8、property no-quorum-policy=ignore关闭集群对节点数量的检查,节点server1如果故障,节点server4收不到心跳请求,直接接管程序,保证正常运行,不至于一个节点崩掉而使整个集群崩掉
9、实现haproxy服务高可用,先编辑上面更改过的配置文件如下图
向集群添加haproxy 服务;并绑定在一台主机上,避免资源飘移,将他们绑定在一个组上
监控查看
测试:开启server1、server4上的haproxy ,关闭此时ip在的主机上的corosync,发现服务仍能正常访问,实现了集群高可用
10、开启fence功能
检查有没有fence_xvm服务
添加fence资源,写入集群节点名和真实server的名字映射
真机打开fence_virtd服务;成功加入监控查看
至此haproxy的基于pacemaker结合corosync的高可用负载均衡集群部署完毕