heartbeat+haproxy

HAProxy提供高可用性、负载均衡以及基于TCP和HTTP应用的代理支持虚拟主机它是免费、快速并且可靠的一种解决方案。HAProxy特别适用于那些负载特大的web站点这些站点通常又需要会话保持或七层处理。HAProxy运行在当前的硬件上完全可以支持数以万计的并发连接。并且它的运行模式使得它可以很简单安全的整合进您当前的架构中 同时可以保护你的web服务器不被暴露到网络上。

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

代理

Server25.example.com       172.25.45.25

Server26.example.com       172.25.45.26

Realserver

Server27.example.com       172.25.45.27

Server28.example.com       172.25.45.28

####HAproxy的安装配置

Server25和server26

yum install haproxy -y

cd /etc/haproxy/

vim haproxy.cfg

注释 60-86 行然后

87  listen westos 172.25.45.100:80

88        balance  roundrobin

89        server web1 172.25.45.27:80 check

90        server web2 172.25.45.28:80 check

netstat -antlp 查看有没有别的服务影响haproxy

/etc/init.d/haproxy start

Server27

yum install httpd

vim /var/www/html/index.html 编辑内容为:

server27.example.com

/etc/init.d/httpd start

Server28:

yum install httpd

vim /var/www/html/index.html 编辑内容为:

server28.example.com

/etc/init.d/httpd start

##########Heartbeat的配置

Server25

yum install *.rpm -y

rpm -q heartbeat -d  查看heartbeat的相关配置文件夹目录

cp /usr/share/doc/heartbeat-3.0.4/{authkeys,ha.cf,haresources} /etc/ha.d

vim /etc/ha.d/ha.cf   修改内容为:

34 logfacility     local0##直接往系统日志写入

48 keepalive 2##心跳间隔

56 deadtime 30##心跳无反应被认为服务挂掉的时间

61 warntime 10##心跳无反应警告时间

71 initdead 60##资源初始化

76 udpport 649## UDP 端口 --> 自己设置 <同一个交换机上的端口不能重复>

91 bcast   eth0  # Linux##广播

157 auto_failback on##服务自动回切

211 node    server25.example.com##主机节点信息前为主后为辅

212 node    server26.example.com##被机节点信息

220 ping 172.25.45.250## ping 某个 ip 要求能 ping 通确定网络服务此处 ip 一般为网关地址与fence配合使用来进行断网服务如:server26可以ping通某个ip而server5不行此时fence便会进行断电重启server25

253 respawn hacluster /usr/lib64/heartbeat/ipfail

259 apiauth ipfail gid=haclient uid=hacluster

vim /etc/ha.d/authkeys   修改内容为

23 auth 1

24 1 crc##明文

chmod 600 authkeys

vim /etc/ha.d/haresources   修改内容为:

151 server25.example.com IPaddr::172.25.45.100/24/eth0 haproxy## 此处域名一定为

主机的域名ip为 vip(虚拟ip)  haproxy表示需要调用的脚本名称

scp authkeys ha.cf haresources 172.25.45.26:/etc/ha.d

/etc/init.d/heartbeat start

Tail  -f  /var/log/messages

Ip  a  s 此时虚拟ip在server25上

Server26

yum install *.rpm -y

/etc/init.d/heartbeat start

测试

当虚拟ip在server25上时在真机测试

此时关掉server25上的heartbeat服务server26便会接管server25上的服务此时虚拟ip在server26上

此时在真机上继续测试,测试结果说明server26接管了server25的服务

########### 查看详细信息 #######

Vim  /etc/haproxy/ haproxy.cfg 修改内容为:

/etc/init.d/haproxy reload

@@@检查服务运行测试:在浏览器端输入 172.25.45.100:8080/status 然后在server27和server28关闭httpd服务看颜色的变化

######### 自定义前端和后端 后端的动静分离##########

Server25:

vim /etc/haproxy/haproxy.cfg 修改内容为:

frontend westos 172.25.45.100:80        ##自定义前端

acl url_static       path_beg       -i /images   ##定义url_static 条件:以/images开头

acl url_static       path_end       -i .jpg  .gif   ##定义url_static 条件:以.jpg .gif .png 结尾

use_backend static          if url_static

default_backend   app     ###默认使用动态如果符合 url_static就使用静态

backend static

balance  roundrobin

server web1 172.25.45.27:80  check    ###静态后端

backend app

balance  roundrobin

server web2 172.25.45.28:80 check      ##动态后端

server27:

cd /var/www/html

mkdir images

cd images 然后往该目录中放入OSI.gif与redhat.jpg

测试:在浏览器中输入  172.25.45.100/images/redhat.jpg 或者 172.25.45.100/images/OSI.gif

此处以/images开头以.gif结尾 (静)

若直接输入172.25.45.100则访问动)

############## 设置访问权限 ##########

Server25

vim /etc/haproxy/haproxy.cfg 修改内容为

block if badhost##不允许访问

测试:真机(172.25.45.250)在浏览器中输入  172.25.15.100会有 403 报错

Yum install httpd -y

vim /etc/httpd/conf/httpd.conf 修改默认端口:

135 #Listen 12.34.56.78:80

136 Listen 8000

vim /var/www/html/index.html 修改内容为:

/etc/init.d/httpd start

继续在server25上操作

vim /etc/haproxy/haproxy.cfg 修改内容为

添加95、96行

真机测试

也可以这样做

vim /etc/haproxy/haproxy.cfg 修改内容为

注释掉95、96行添加106行

测试在真机访问

关掉server28的httpd

[[email protected] Desktop]$ curl 172.25.45.100

网页正在维护中

############### 自动补全全域名 #########

真机:

vim /etc/hosts:

172.25.45.100 server25.example.comwestos.orgwww.westos.org

Server25

vim /etc/haproxy.conf 修改内容为:

添加97-100行注释带年109行

99##在浏览器中输入 westos.org 自动补充成 www.westos.org

100##在浏览器中输入 172.25.30.99 自动补充成 www.westos.org

/etc/init.d/haproxy reload

测试:真机(172.25.45.250)在浏览器中输入 westos.org 或者 172.25.45.100 会自动补齐为www.westos.org

################### 读写分离 ############

Server25:

vim /etc/haproxy.conf 修改内容为

添加100-103行将108、109修改为下图

acl read method GET##定义读取

acl read method HEAD##定义读取

acl write method PUT##定义写入/上传

acl write method POST##定义写入/上传

use_backend app             if write##当 写入/上传 时使用app动态后端

default_backend             static##默认后端为静态static后端

/etc/init.d/haproxy reload

Server27 和 server28都要做的操作:

cd /var/www/html

cd upload/

mv * ..

cd ..

vim upload_file.php 修改第 4 行内容:

&& ($_FILES["file"]["size"] < 2000000))##此处增大了上传文件指定大小

chmod 777 upload/

/etc/init.d/httpd restart

测试:在真机浏览器中输入 www.westos.org/images 中可以读取

在真机浏览器中输入 www.westos.org 中可以上传文件(文件格式为.jpg .gif .png -->在 /etc/haproxy/haproxy.conf 中可查)

时间: 2024-10-26 02:08:27

heartbeat+haproxy的相关文章

heartbeat+Haproxy多VIP负载均衡高可用

环境就不多做介绍了,还是上一篇中用到的四台机器,这里只是之前Heartbeat+Haproxy实现负载均衡高可用的补充罢了,废话少说,进入正题. 本文的目的将实现heartbeat绑定多个VIP,多个VIP又将分别代理多个不同的web服务,这些web服务之间做负载均衡,而VIP是高可用,进而实现haproxy的高可用. 主机名 角色 IP地址 说明 mylinux1.contoso.com Heartbeat+Haproxy eth0:192.168.100.121 eth1:172.16.10

Heartbeat+Haproxy实现高可用

环境说明: 主机名 角色 IP地址 mylinux1.contoso.com heartbeat+haproxy eth0:192.168.100.121 eth1:172.16.100.121 mylinux2.contoso.com heartbeat+haproxy eth0:192.168.100.122 eth1:172.16.100.122 mylinux3.contoso.com web server 1 eth0:192.168.100.181 mylinux4.contoso.

Heartbeat+HAProxy+MySQL半复制高可用架构

目录 一 基础环境 二 架构设计 三 安装MySQL 3.1 安装MySQL 3.2 初始化MySQL 四 配置MySQL半同步 4.1 加载插件 4.2 配置半同步复制 4.3 master创建账号并授权 4.4 slave创建账号并授权 4.4 启动同步 五 安装HAProxy 5.1 下载及安装 5.2 创建HAProxy相关配置文件 六 配置HAProxy 6.1 配置master的HAProxy 6.2 配置slave的HAProxy 七 安装Heartbeat 八 配置Heartbe

keepalived,heartbeat,lvs,haproxy

一, keeplived @ keepalived是集群管理中保证集群高可用的一个服务软件 keepalived是以VRRP协议为实现基础的,VRRP全称Virtual Router Redundancy Protocol,即虚拟路由冗余协议. 虚拟路由冗余协议,可以认为是实现路由器高可用的协议,即将N台提供相同功能的路由器组成一个路由器组,这个组里面有一个master和多个backup,master上面有一个对外提供服务的vip(该路由器所在局域网内其他机器的默认路由为该vip),master

haproxy原理与部署

1. Haproxy介绍 Haproxy是一个开源的高性能的反向代理或者说是负载均衡服务软件之一,它支持双机热备.虚拟主机.基于TCP和HTTP应用代理等功能.其配置简单,而且拥有很好的对服务器节点的健康检查功能(相当于keepalived健康检查),当其代理的后端服务器出现故障时,Haproxy会自动的将该故障服务器摘除,当服务器的故障恢复后Haproxy还会自动将RS服务器假如. Haproxy特别使用与那些访问量很大.但又需要会话保持或七层应用的业务.Haproxy运行在普通的服务器硬件上

III (十七) haproxy(2)

III 17 haproxy(2) haproxy是一个开源的.高性能的基于tcp和http应用代理的HA的.LB服务软件,它支持双机热备.HA.LB.虚拟主机.图形界面查看状态信息等功能,其配置简单.维护方便,而且后端RS的health check功能有很好的支持(相当于keepalived的health check),当它代理的后端RS server故障时,haproxy会自动将该server移除,当故障的RS server恢复后,还会自动加入进来继续提供服务: 与nginx比,haprox

Haproxy安装配置及日志输出问题

简介:软件负载均衡一般通过两种方式来实现:基于操作系统的软负载实现和基于第三方应用的软负载实现.LVS就是基于Linux操作系统实现的一种软负载,HAProxy就是开源的并且基于第三应用实现的软负载.    HAProxy支持两种主要的代理模式:"tcp"也即4层(大多用于邮件服务器.内部协议通信服务器等),和7层(HTTP).在4层模式 下,HAproxy仅在客户端和服务器之间转发双向流量.7层模式下,HAProxy会分析协议,并且能通过允许.拒绝.交换.增加.修改或者删除请求 (r

lvs+keepalived和haproxy+heartbeat区别

最近一直在看一些高可用性的负载均衡方案,当然那些f5之类的硬件设备是玩不起也接触不到了.只能看这些for free的开源方案. 目前使用比较多的就是标题中提到的这两者,其实lvs和haproxy都是实现的负载均衡的作用,keepalived和heartbeat都是提高高可用性的,避免单点故障.那么他们为什么这么搭配,而又有什么区别呢? 经过一番google,大体明白了两者的区别: lvs的是通过vrrp协议进行数据包转发的,提供的是4层的负载均衡.特点是效率高,只要你机器网卡抗的住就不是问题.h

haproxy+heartbeat的两种方案(注意,备服务器vip,正常haproxy启动方法)

主备模式 方案一 也就是也vip在哪里,haproxy就在哪里启动的主备模式. [[email protected] ~]# cat /etc/ha.d/haresources #gao services #10.0.0.103 www.lvnian.org MASTER IPaddr::10.0.0.103/24/eth0  haproxyd  [[email protected] ~]# 注意点: ##haproxy 如果给heartbeat管理,那么上面的haproxy脚本必须要早/etc