Ubuntu下使用haproxy+heartbeat搭建WEB负载均衡作业指导书Word文档格式.docx
《Ubuntu下使用haproxy+heartbeat搭建WEB负载均衡作业指导书Word文档格式.docx》由会员分享,可在线阅读,更多相关《Ubuntu下使用haproxy+heartbeat搭建WEB负载均衡作业指导书Word文档格式.docx(14页珍藏版)》请在冰豆网上搜索。
192.168.1.100eth0
∙LoadBalancer2:
192.168.1.101eth0
∙WebServer1:
192.168.1.102eth0
∙WebServer2:
192.168.1.103eth0
∙Iscsitarget:
IPaddress:
192.168.1.104eth0
∙lb1andlb2共享IP:
192.168.1.99
3.所需要的软件
操作系统:
Ubuntuserver8.0.4
Lb1和lb2:
haproxyheartbeat
Web1和web2:
Apache2
Iscsitarget:
Openfiler
二Web服务器配置
在web1和
web2上配置
1.设置自动登录到iscsitarget(openfiler)
安装open-iscsi
Apt-getinstallopen-iscsi
发现iscsi-target
iscsiadm-mdiscovery-tsendtargets-p192.168.1.104
设置开机自动登录到iscsi-target
iscsiadm-mnode-Tiqn.2006-.openfiler:
tsn.6f5d0fb29fc9-p192.168.1.104--opupdate-nnode.startup-vautomatic
说明:
-T后面的字符串是执行发现iscsi-target所获得的连接字符串
很多时候设置自动登录不成功,是因为在/etc/rc.local里面设置了dhclient
自动获取IP,这样自动登录到ISCSI的时候网络是不通的,所以不成功。
需要在/etc/network/interfaces里面设置自动获取IP地址
如:
autoeth0
ifaceeth0inetdhcp
2.格式化ISCSI磁盘并设置自动挂载
使用fdisk–l查看磁盘分区
fdisk-l
/dev/sdb164.4GB是iscsi磁盘
fdisk/dev/sdb#对磁盘进行分区
mkfs.ext3/dev/sdb1#将sdb1分区格式化为ext3文件系统
建立挂载目录
mkdir/iscsi
开机自动挂载
vi/etc/fstab
/dev/sdb1/iscsiext3relatime02#增加这一行
3.安装webserver
Apt-getinstallapache2
2)修改web服务器日志格式
Vi/etc/apache2/apache2.conf
#LogFormat"
%h%l%u%t\"
%r\"
%>
s%b\"
%{Referer}i\"
\"
%{User-Agent}i\"
"
combined
LogFormat"
%{X-Forwarded-For}i%l%u%t\"
注释掉原来的CustomLog,并修改文档根路径为/iscsi/www
vi/etc/apache2/sites-available/default
SetEnvIfRequest_URI"
^/check\.txt$"
dontlog
CustomLog/var/log/apache2/access.logcombinedenv=!
dontlog
/etc/init.d/apache2restart#重启web服务器
4)建立check文件,haproxy使用该文件检查WEB状态,必须建立
Touch/iscsi/www/check.txt
Web服务器配置完成,很简单,lb1和lb2就要复杂一些
三配置负载均衡haproxy
在lb1和lb2上配置
1.修改hosts文件
Vi/etc/hosts
192.168.1.100
192.168.1.101
192.168.1.102
192.168.1.103
2.安装软件
Apt-getinstallhaproxy
3.修改haproxy配置文件
Cp/etc/haproxy.cfg/etc/haproxy.cfg.bak
Cat/dev/null>
/etc/haproxy.cfg
Vi/etc/haproxy.cfg
global
log127.0.0.1local0
log127.0.0.1local1notice
#logloghostlocal0info
maxconn4096
#debug
#quiet
userhaproxy
grouphaproxy
defaults
logglobal
modehttp
optionhttplog
optiondontlognull
retries3
redispatch
maxconn2000
contimeout5000
clitimeout50000
srvtimeout50000
listenwebfarm192.168.1.99:
80
statsenable
statsauthylmf:
ylmf
balanceroundrobin
cookieJSESSIONIDprefix
optionhttpclose
optionforwardfor
optionhttpchkHEAD/check.txtHTTP/1.0
serverwebA192.168.1.102:
80cookieAcheck
serverwebB192.168.1.103:
80cookieBcheck
4.修改默认配置,让haproxy开机自动启动
Vi/etc/default/haproxy
#SetENABLEDto1ifyouwanttheinitscripttostarthaproxy.
ENABLED=1
#Addextraflagshere.
#EXTRAOPTS="
-de-m16"
四配置heartbeat高可用
Active/Standby模式
Lb1和lb2上配置
1.安装
Apt-getinstallheartbeat
2.修改内核参数
Vi/etc/sysctl.conf
net.ipv4.ip_nonlocal_bind=1
sysctl–p#让设置生效
3.设置授权KEY
vi/etc/ha.d/authkeys
auth3
3md5somerandomstring
chmod600/etc/ha.d/authkeys#修改权限
4.添加ha资源
vi/etc/ha.d/haresources
在lb1上配置
vi/etc/ha.d/ha.cf
#
#keepalive:
howmanysecondsbetweenheartbeats
keepalive2
#deadtime:
seconds-to-declare-host-dead
deadtime10
#WhatUDPporttouseforudporppp-udpcommunication?
udpport694
bcasteth0
mcasteth0225.0.0.169410
ucasteth0192.168.1.101#这个IP是lb2的IP
#Whatinterfacestoheartbeatover?
udpeth0
#Facilitytouseforsyslog()/logger(alternativetolog/debugfile)
logfacilitylocal0
#Tellwhatmachinesareinthecluster
#nodenodename...--mustmatchuname-n
node
在lb2上配置
ucasteth0192.168.1.100#这个IP是lb1的IP
5.设置开机自动启动heartbeat
vi/etc/rc.local
/etc/init.d/heartbeatstart
Active/Active模式
在lb1和lb2的ha.cf里面增加一行
auto_failbackon
在lb1上
在lb2上
参考文档
五测试
1.启动heartbeat
2.启动haproxy
/etc/init.d/haproxystart
3.在lb1和lb2上查看接口信息
Ifconfig或ipaddrsheth0
4.查看haproxy状态
http:
//192.168.1.99/haproxy?
stats
六haproxy参考文档
官方网址:
//cn.haproxy.org/
描述
HAProxy提供高可用性、负载均衡以及基于TCP和HTTP应用的代理,它是免费、快速并且可靠的一种解决方案。
HAProxy特别适用于那些负载特大的web站点,这些站点通常又需要会话保持或七层处理。
HAProxy运行在当前的硬件上,完全可以支持数以万计的并发连接。
并且它的运行模式使得它可以很简单安全的整合进您当前的架构中,同时可以保护你的web服务器不被暴露到网络上,如下所示:
当前,版本1.3,它支持如下新特性:
∙内容交换:
可以根据请求(request)的任何一部分来选择一组服务器,比如请求的URI,Host头(header),cookie,以及其他任何东西.当然,对那些静态分离的站点来说,对此特性还有更多的需求。
∙全透明代理:
可以用客户端IP地址或者任何其他地址来连接后端服务器.这个特性仅在Linux2.4/2.6内核打了cttproxy补丁后才可以使用.这个特性也使得为某特殊服务器处理部分流量同时又不修改服务器的地址成为可能。
∙基于树的更快的调度器:
1.2.16以上的版本要求所有的超时都设成同样的值以支持数以万计的全速连接.这个特性已经移植到1.2.17.
∙内核TCP拼接:
避免了内核到用户然后用户到内核端的数据拷贝,提高了吞吐量同时又降低了CPU使用率.Haproxy1.3支持LinuxL7SW以满足在商用硬件上数Gbps的吞吐的需求。
∙连接拒绝:
因为维护一个连接的打开的开销是很低的,有时我们很需要限制攻击蠕虫(attackbots),也就是说限制它们的连接打开从而限制它们的危害。
这个已经为一个陷于小型DDoS攻击的网站开发了而且已经拯救了很多站点。
∙细微的头部处理:
使得编写基于header的规则更为简单,同时可以处理URI的某部分。
∙快而可靠的头部处理:
使用完全RFC2616兼容的完整性检查对一般的请求全部进行分析和索引仅仅需要不到2ms的时间。
∙模块化设计:
允许更多人加入进此项目,调试也非常简单.poller已经分离,已经使得它们的开发简单了很多.HTTP已经从TCP分离出来了,这样增加新的七层特性变得非常简单.其他子系统也会很快实现模块化
∙投机I/O处理:
在一个套接字就绪前就尝试从它读取数据。
poller仅推测哪个可能就绪哪个没有,尝试猜测,并且如果成功,一些开销很大的系统调用就可以省去了。
如果失败,就会调用这些系统调用。
已知的使用Linuxepoll()已经净提升起码10%了。
∙ACLs:
使用任意规则的任意组合作为某动作的执行条件。
∙TCP协议检查:
结合ACL来对请求的任意部分进行检查,然后再进行转发。
这就可以执行协议验证而不是盲目的进行转发。
比如说允许SSL但拒绝SSH。
∙更多的负载均衡算法:
现在,动态加权轮循(DynamicRoundRobin),加权源地址哈希(WeightedSourceHash),加权URL哈希和加权参数哈希(WeightedParameterHash)已经实现。
其他算法比如WeightedMeasuredResponseTime也很快会实现。
和其他"
免费"
的负载均衡解决方案不同的是,HAproxy仅被几百或者几千的遍布全球的用户使用,但是这些用户通常运行很大的站点,每天有数百万的点击量和几Gbps甚至几万兆(terabytes)吞吐量。
他们需要7x24的可用性并且愿意承受免费软件解决方案的风险,同时有这些使用技术.通常,这种解决方案仅配置为内部使用,我仅在他们提供给我反馈或者需要新特性的时候才会知道.
Heartbeat介绍
Linux-HA项目在广泛的平台上提供成熟的高可用(故障切换)能力,在全球支持上万个关键任务节点。
其中一小部分记录在成功案例。
Linux-HA项目是目前可用的时间最长,最多能力,和经过最好测试的开放源码高可用性解决方案,并具有最大的辅助社区.根据项目的规则,它一直保证编译时没有警告,没有静态分析工具发现的问题.安全专家定期审查源程序.
它提供对节点,应用的监视功能,提供一个成熟的基于规则的资源配置依赖模型.当一个故障发生,或一个规则变化,用户提供的规则将指导期望的资源的重新配置.
一般来说,它具有至少与VeritasVCS,SunCluster,LifeKeeper,ServiceGuard等商业集群软件类似的功能和同样方便的使用方法.
特性
∙工作在所有Linux的变体和平台上,并随许多Linux发行版一起打包发行.
∙支持复杂的服务间的依赖关系.可以快速准确地启动和停止资源.
∙支持强制多个资源运行在同一位置或强制多个资源运行在不同位置的规则.
∙基于规则的资源配置可以让资源精确地根据用户定义的规则,节点的属性和位置的限制条件来配置.
∙适当力度的资源管理可以让用户自己定义属性,这样可以使资源的切换基于用户自己的标准进行.
∙基于时间的规则可以根据不同时间来适用不同的规则.举例来说,用户可以设定,切换要延迟到晚上或周末进行.
∙易于理解和配置的基于init脚本的应用管理.-对于基本管理,许多服务不需要定义新脚本.
∙资源组提供了一个简单的易于使用的服务管理.
∙活动的隔离机制(STONITH)提供强大的数据完整性保证-即使在发生一些不寻常的故障情况下.
∙全特性的图形用户界面–可以用来配置,控制,监视服务和服务器的运行
∙支持工业标准的系统管理协议CIM(CommonInformationModel)
∙开放源码避免了提供商占据产品,并提供非常大的灵活性,稳定性,响应度和测试.
∙在Linux上有很长的历史,并在健壮性上有良好的声望.
∙可以在单独的机器上对基于init脚本的应用进行监控和重启.
∙可以运行在FreeBSD和Solaris上,并可以移植其它类POSIX平台.
//www.linux-ha.org/zh/HomePage_zh
操作文档完成。
附录与附表
附录A
无
附录B
附加说明:
本作业指导书由信息管理部更新制作并跟进后续培训移交事宜。
本作业指导书起草人:
高进波
本作业指导书审定人:
本作业指导书批准人:
本作业指导书经审核批准后,自2009年3月5日起发布。
本作业指导书在公司局域网上发布,版权属雨林木风有限公司,加盖本公司受控章后,为受控文件,任何人不得私自复制或转借他人。
更改记录
修改状态号
公布日期
编写人
更改原因
(签名在原版文件上)