1)实验拓扑信息

wKioL1gYoFjzQr9jAAEd09D24eo089.png

说明:

a、在客户端使用www.wanwan.com,将由负载均衡器提交给vip1所对应的集群进行处理

b、在客户端使用img.wanwan.com,将由负载均衡器提交给vip1所对应的集群进行处理

c、10.10.10.129和10.10.10.130两台负载均衡器,其中某一台出现故障均不影响整个系统运行


2)haproxy的安装与启动脚本配置

参考我的上一篇博客:http://www.jb51.cc/article/p-sytmwgiq-xe.html


3)haproxy的配置(两台负载均衡器10.10.10.129/10.10.10.130均需配置)

[root@MysqL-master~]#adduserhaproxy-s/sbin/nologin-M
[root@MysqL-master~]#cd/usr/local/haproxy/conf/
[root@MysqL-masterconf]#cathaproxy.cfg
global
log127.0.0.1local0info
maxconn4096
userhaproxy
grouphaproxy
daemon
nbproc1
pidfile/usr/local/haproxy/logs/haproxy.pid
defaults
modehttp
retries3
timeoutconnect10s
timeoutclient20s
timeoutserver30s
timeoutcheck5s
frontendwww
bind*:80
modehttp
optionhttplog
optionforwardfor
optionhttpclose
logglobal
#来自www.wanwan.com的请求,均交给htmpool进行处理,来自img.wanwan.com的请求,则提交给imgpool进行处理。默认不指定的话,交给htmpool进行处理
aclhost_wwwhdr_dom(host)-iwww.wanwan.com
aclhost_imghdr_dom(host)-iimg.wanwan.com
use_backendhtmpoolifhost_www
use_backendimgpoolifhost_img
default_backendhtmpool
backendhtmpool
modehttp
optionredispatch
optionabortonclose
balancestatic-rr
cookieSERVERID
optionhttpchkGET/index.html
serverweb0110.10.10.128:80cookieserver1weight6checkinter2000rise2fall3
serverweb0210.10.10.132:80cookieserver2weight6checkinter2000rise2fall3
backendimgpool
modehttp
optionredispatch
optionabortonclose
balancestatic-rr
cookieSERVERID
optionhttpchkGET/index.html
serverimg110.10.10.131:80cookieserver1weight6checkinter2000rise2fall3
serverimg210.10.10.133:80cookieserver2weight6checkinter2000rise2fall3
#配置haproxy的web监控界面
listenadmin_stats
bind0.0.0.0:9188
modehttp
log127.0.0.1local0err
statsrefresh30s
statsuri/haproxy-status
statsrealmwelcomelogin\Haproxy
statsauthadmin:admin~!@
statshide-version
statsadminifTRUE

4)keepalived的配置

负载均衡器配置两个vip:10.10.10.188以及10.10.10.189(在两台负载均衡器上互为主备)

[root@MysqL-masterconf]#cat/etc/keepalived/keepalived.conf
!ConfigurationFileforkeepalived
global_defs{
notification_email{
314324506@qq.com
}
notification_email_fromAlexandre.Cassen@firewall.loc
smtp_serversmtp.qq.com
smtp_connect_timeout30
router_idLVS_7
}
#配置这个脚本的作用是为了避免haproxy服务停止后,keepalived不释放vip
vrrp_scriptchk_http_port{
script"/opt/check_haproxy.sh"
interval2
weight2
}
vrrp_instanceVI_188{
stateMASTER#主服务器
interfaceeth0
virtual_router_id188
priority150#slave上的数值更小,数值越大,代表优先级越高
advert_int1
authentication{
auth_typePASS
auth_pass1111
}
virtual_ipaddress{
10.10.10.188/24#vip地址,在系统里面通过ipaddlist可以查看
}
}
vrrp_instanceVI_189{
stateBACKUP#从服务器
interfaceeth0
virtual_router_id189
priority100#master上的数值更大,数值越大,代表优先级越高
advert_int1
authentication{
auth_typePASS
auth_pass1111
}
virtual_ipaddress{
10.10.10.189/24#vip地址,在系统里面通过ipaddlist可以查看
}
}

5)keepalived的启动脚本

#!/bin/sh
#
#StartupscriptfortheKeepaliveddaemon
#
#processname:keepalived
#pidfile:/var/run/keepalived.pid
#config:/etc/keepalived/keepalived.conf
#chkconfig:-2179
#description:StartandstopKeepalived
#Sourcefunctionlibrary
./etc/rc.d/init.d/functions
#Sourceconfigurationfile(wesetKEEPALIVED_OPTIONSthere)
./etc/sysconfig/keepalived
RETVAL=0
prog="keepalived"
start(){
echo-n$"Starting$prog:"
daemonkeepalived${KEEPALIVED_OPTIONS}
RETVAL=$?
echo
[$RETVAL-eq0]&&touch/var/lock/subsys/$prog
}
stop(){
echo-n$"Stopping$prog:"
killprockeepalived
RETVAL=$?
echo
[$RETVAL-eq0]&&rm-f/var/lock/subsys/$prog
}
reload(){
echo-n$"Reloading$prog:"
killprockeepalived-1
RETVAL=$?
echo
}
#Seehowwewerecalled.
case"$1"in
start)
start
;;
stop)
stop
;;
reload)
reload
;;
restart)
stop
start
;;
condrestart)
if[-f/var/lock/subsys/$prog];then
stop
start
fi
;;
status)
statuskeepalived
;;
*)
echo"Usage:$0{start|stop|reload|restart|condrestart|status}"
exit1
esac
exit$RETVAL

6)效果测试

a、在客户端测试www.wanwan.com

wKiom1gZJxWwuWznAAA8Ah9SF5I775.png-wh_50

wKioL1gZJxWB5XzGAABBmmVmU_o912.png-wh_50

b、测试img.wanwan.com

wKiom1gZJxaS9BRsAAA-Tvd59Gw368.png-wh_50

wKioL1gZJxbRSm5vAAA534ZI-Jg155.png-wh_50

如上:负载均衡调度的作用已经实现,那么我们在测试下keepalived的相关功能

c、测试keepalived的相关功能

[root@MysqL-master~]#ipaddlist
1:lo:<LOOPBACK,UP,LOWER_UP>mtu65536qdiscnoqueuestateUNKNowN
link/loopback00:00:00:00:00:00brd00:00:00:00:00:00
inet127.0.0.1/8scopehostlo
inet6::1/128scopehost
valid_lftforeverpreferred_lftforever
2:eth0:<broADCAST,MULTICAST,LOWER_UP>mtu1500qdiscpfifo_faststateUPqlen1000
link/ether00:0c:29:67:b3:45brdff:ff:ff:ff:ff:ff
inet10.10.10.129/24brd10.10.10.255scopeglobaleth0
inet10.10.10.188/24scopeglobalsecondaryeth0
inet6fe80::20c:29ff:fe67:b345/64scopelink
valid_lftforeverpreferred_lftforever
[root@MysqL-slave~]#ipaddlist
1:lo:<LOOPBACK,LOWER_UP>mtu1500qdiscpfifo_faststateUPqlen1000
link/ether00:0c:29:53:cf:52brdff:ff:ff:ff:ff:ff
inet10.10.10.130/24brd10.10.10.255scopeglobaleth0
inet10.10.10.189/24scopeglobalsecondaryeth0
inet6fe80::20c:29ff:fe53:cf52/64scopelink
valid_lftforeverpreferred_lftforever

我们可以看到,两个vip地址,10.10.10.188以及10.10.10.189分别在两台负载均衡器上(仔细看下keepalived的配置可以发现,我们配置两台负载均衡互为主从)

模拟10.10.10.129-主负载均衡器宕机,然后观察ip地址切换以及负载均衡是否正常

[root@MysqL-slave~]#ipaddlist
1:lo:<LOOPBACK,LOWER_UP>mtu1500qdiscpfifo_faststateUPqlen1000
link/ether00:0c:29:53:cf:52brdff:ff:ff:ff:ff:ff
inet10.10.10.130/24brd10.10.10.255scopeglobaleth0
inet10.10.10.189/24scopeglobalsecondaryeth0
inet10.10.10.188/24scopeglobalsecondaryeth0
inet6fe80::20c:29ff:fe53:cf52/64scopelink
valid_lftforeverpreferred_lftforever
如上,我们可以观察到vip已经切换到另外一台负载均衡上了,然后我们观察负载均衡器的使用情况

wKiom1gZLVejz0BsAAA8v6e5pao217.png-wh_50

wKioL1gZLVeBRc95AAA-x-HVzFI895.png-wh_50

负载正常,keepalived的功能也实现了,我们重新开启主负载均衡器
[root@MysqL-masterkeepalived]#ipaddlist
1:lo:<LOOPBACK,LOWER_UP>mtu1500qdiscpfifo_faststateUPqlen1000
link/ether00:0c:29:67:b3:45brdff:ff:ff:ff:ff:ff
inet10.10.10.129/24brd10.10.10.255scopeglobaleth0
inet10.10.10.188/24scopeglobalsecondaryeth0
inet6fe80::20c:29ff:fe67:b345/64scopelink
valid_lftforeverpreferred_lftforever
vip地址10.10.10.188已经切换回来了
[root@MysqL-slave~]#ipaddlist
1:lo:<LOOPBACK,LOWER_UP>mtu1500qdiscpfifo_faststateUPqlen1000
link/ether00:0c:29:53:cf:52brdff:ff:ff:ff:ff:ff
inet10.10.10.130/24brd10.10.10.255scopeglobaleth0
inet10.10.10.189/24scopeglobalsecondaryeth0
inet6fe80::20c:29ff:fe53:cf52/64scopelink
valid_lftforeverpreferred_lftforever

到此,keepalived+haproxy的基本功能已经实现了,由于haproxy配置比较多,这里我就不细讲了,后面会整理一篇关于haproxy常用的参数配置。

Centos6下haproxy+keepalived构建高可用web集群的更多相关文章

  1. 需要适用于iOS 9的IPv6组播C代码

    苹果现在要求iOS9应用符合IPv6.我们几乎可以,除了一些发送UDP广播的代码–现在在iOS9中失败了.我看到的一切告诉我,UDP组播是在IPv6中这样做的正确方法.我已经找到一些示例代码,但是在我尝试过的任何版本的iOS或MacOSX上都无效.这个代码是从我们程序中的C/C++lib调用的–很难回调到Swift,Obj-C,Java等.这段代码将由我们的应用程序的MacOSX和Android版本共享.有人会认为可以在任何POSIX环境中的C中进行IPv6组播!

  2. OpenStack对象存储――Swift

    Swift前身是RackspaceCloudFiles项目,随着Rackspace加入到OpenStack社区,于2010年7月贡献给OpenStack,作为该开源项目的一部分。Swift目前的最新版本是OpenStackEssex1.5.1。Swift特性在OpenStack官网中,列举了Swift的20多个特性,其中最引人关注的是以下几点。在OpenStack中还可以与镜像服务Glance结合,为其存储镜像文件。Auth认证服务目前已从Swift中剥离出来,使用OpenStack的认证服务Keysto

  3. 对象存储系统Swift技术详解:综述与概念

    通过阅读Swift的技术文档,我们可以理解其中的设计的原理和实现的方法。本人于9月底开始接触swift,刚开始看文档的时候一知半解,有幸阅读了zzcase等人的博客,才得以入门。随着对swift设计原理的理解和源码的深入,文档经过数次反复的修改,希望对各位学习swift的童鞋有所帮助,水平有限,若各位发现有错误之处,恳请指出。

  4. 《转》OpenStack对象存储——Swift

    Swift前身是RackspaceCloudFiles项目,随着Rackspace加入到OpenStack社区,于2010年7月贡献给OpenStack,作为该开源项目的一部分。Swift目前的最新版本是OpenStackEssex1.5.1。Swift特性在OpenStack官网中,列举了Swift的20多个特性,其中最引人关注的是以下几点。在OpenStack中还可以与镜像服务Glance结合,为其存储镜像文件。Auth认证服务目前已从Swift中剥离出来,使用OpenStack的认证服务Keysto

  5. centos – 与HAproxy和keepalived的连接同步建议

    我设法让HAproxy在故障转移配置中工作,如architecture.txt文档中使用keepalived所建议的那样.我使用了来自epelrepo的CentOS5.5,HAproxyrpm,以及来自CentOS测试仓库的keepalivedrpm.这是我的keepalived配置我现在想要的是让我的备份节点能够在主服务器出现故障时接管打开的实际连接.我听说这可以用多种方式完成,使用LVS功能等…

  6. centos – nginx – 负载均衡器 – 当上游节点离线/关闭时存在相当大的延迟

    在CentOS6.5上运行Nginx1.0.15.我有三个上游服务器,一切正常,但是当我模拟中断,并将其中一个上游服务器关闭时,我发现响应时间相当滞后(额外5-7秒).第二个我把倒下的服务器重新上线,滞后消失了.另外,我注意到另一个奇怪的事情,如果我只是停止模拟停机服务器上的httpd服务,响应时间是正常的,只有在服务器完全关闭时才会出现延迟.这是我的conf:我已经尝试过像this这样的类似帖子

  7. ubuntu – 通过VM iproute多个ADSL负载均衡器

    很长一段时间(2年?

  8. ubuntu – 是否有负载均衡器允许您重新使用套接字连接?

    我有一个服务,服务器上传20kbxml文件到我的服务器.没有会话,它是一个单一的POST请求,就是这样.每个单独的请求都根据xml文件的内容进行身份验证.在负载测试期间,我将不得不进行与套接字相关的调整,服务器耗尽其套接字池.无论如何,我想知道当我将负载均衡器带入两个Web服务器之间的循环请求时,可能会发生什么变化.负载均衡器可以重新使用套接字吗?如果是这样,那么就有很大的调整范围.

  9. ubuntu – 3台服务器,这是一个集群吗?

    我不确定从哪里开始查看,或者如何进行这样的设置,其中3个服务器都是相同的,但也许一个充当主负载均衡器?您还可以选择虚拟化;Xen/KVM可以自己使用开源,ESXi,ESX,Citrix等各种价格和支持.我会测试一下,看看它是否适用于您的业务情况.

  10. Ubuntu 16.04.4环境下搭建—Gluster分布式集群存储

    glusterFileSystem是一款自由软件,主要由ZRESEARCH公司负责开发,十几名开发者,最近非常活跃。文档也比较齐全,不难上手。gluster是一个可扩展的分布式文件系统,可将来自多个服务器的磁盘存储资源整合到一个全局名称空间中。

随机推荐

  1. 在airgapped(离线)CentOS 6系统上安装yum软件包

    我有一个CentOS6系统,出于安全考虑,它已经被空气泄漏.它可能从未连接到互联网,如果有,它很长时间没有更新.我想将所有.rpm软件包放在一个驱动器上,这样它们就可以脱机安装而无需查询互联网.但是,我在测试VM上遇到的问题是,即使指定了本地路径,yum仍然会挂起并尝试从在线存储库进行更新.另外,有没有办法使用yum-utils/yumdownloader轻松获取该包的所有依赖项和所有依赖项?目前

  2. centos – 命名在日志旋转后停止记录到rsyslog

    CentOS6.2,绑定9.7.3,rsyslog4.6.2我最近设置了一个服务器,我注意到在日志轮换后,named已停止记录到/var/log/messages.我认为这很奇怪,因为所有日志记录都是通过rsyslog进行的,并且named不会直接写入日志文件.这更奇怪,因为我在更新区域文件后命名了HUPed,但它仍然没有记录.在我停止并重新启动命名后,记录恢复.这里发生了什么?

  3. centos – 显示错误的磁盘大小

    对于其中一个磁盘,Df-h在我的服务器上显示错误的空白区域:Cpanel表明它只有34GB免费,但还有更多.几分钟前,我删除了超过80GB的日志文件.所以,我确信它完全错了.fdisk-l/dev/sda2也显示错误:如果没有格式化,我该怎么做才能解决这个问题?并且打开文件描述符就是它需要使用才能做到这一点.所以…使用“lsof”并查找已删除的文件.重新启动写入日志文件的服务,你很可能会看到空间可用.

  4. 如何在centos 6.9上安装docker-ce 17?

    我目前正在尝试在centOS6.9服务器上安装docker-ce17,但是,当运行yuminstalldocker-ce时,我收到以下错误:如果我用跳过的标志运行它我仍然得到相同的消息,有没有人知道这方面的方法?

  5. centos – 闲置工作站的异常负载平均值

    我有一个新的工作站,具有不寻常的高负载平均值.机器规格是:>至强cpu>256GB的RAM>4x512GBSSD连接到LSI2108RAID控制器我从livecd安装了CentOS6.564位,配置了分区,网络,用户/组,并安装了一些软件,如开发工具和MATLAB.在启动几分钟后,工作站负载平均值的值介于0.5到0.9之间.但它没有做任何事情.因此我无法理解为什么负载平均值如此之高.你能帮我诊断一下这个问题吗?

  6. centos – Cryptsetup luks – 检查内核是否支持aes-xts-plain64密码

    我在CentOS5上使用cryptsetupluks加密加密了一堆硬盘.一切都很好,直到我将系统升级到CentOS6.现在我再也无法安装磁盘了.使用我的关键短语装载:我收到此错误:在/var/log/messages中:有关如何装载的任何想法?找到解决方案问题是驱动器使用大约512个字符长的交互式关键短语加密.出于某种原因,CentOS6中的新内核模块在由旧版本创建时无法正确读取512个字符的加密密钥.似乎只会影响内核或cryptsetup的不同版本,因为在同一系统上创建和打开时,512字符的密钥将起作用

  7. centos – 大量ssh登录尝试

    22个我今天登录CentOS盒找到以下内容这是过去3天内的11次登录尝试.WTF?请注意,这是我从我的提供商处获得的全新IP,该盒子是全新的.我还没有发布任何关于此框的内容.为什么我会进行如此大量的登录尝试?是某种IP/端口扫描?基本上有4名匪徒,其中2名来自中国,1名来自香港,1名来自Verizon.这只发生在SSH上.HTTP上没有问题.我应该将罪魁祸首子网路由吗?你们有什么建议?

  8. centos – kswap使用100%的CPU,即使有100GB的RAM也可用

    >Linux内核是否应该足够智能,只需从内存中清除旧缓存页而不是启动kswap?

  9. centos – Azure将VM从A2 / 3调整为DS2 v2

    我正在尝试调整前一段时间创建的几个AzureVM,从基本的A3和标准A3到标准的DS2v2.我似乎没有能力调整到这个大小的VM.必须从头开始重建服务器会有点痛苦.如果它有所不同我在VM中运行CentOS,每个都有一个带有应用程序和操作系统的磁盘.任何人都可以告诉我是否可以在不删除磁盘的情况下删除VM,创建新VM然后将磁盘附加到新VM?

  10. centos – 广泛使用RAM时服务器计算速度减慢

    我在非常具体的情况下遇到服务器速度下降的问题.事实是:>1)我使用计算应用WRF>2)我使用双XeonE5-2620v3和128GBRAM(NUMA架构–可能与问题有关!

返回
顶部