华仔博客

  • 首页
  • seo
  • 网站建设
  • 工具资源
  • 生活
  • 程序开发
  • 网上那点事
  • 网络营销
华仔博客
一个经验分享的博客
  1. 首页
  2. 程序开发
  3. 正文

apache双机搭建高可用负载均衡

2018年3月29日 975点热度 0人点赞 0条评论

centos7下apache安装以及自动启动

keepalived 安装教程

安装上面的教程在两台机器上分别装好apache 和keepalived。

配置第一台机器的keepalived

配置文件内容如下:

编辑/etc/keepalived/keepalived.conf

# vi /etc/keepalived/keepalived.conf ,添加如下内容

! Configuration File for keepalived

global_defs {
notification_email {
admin@example.com
}
notification_email_from admin@example.com
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id linux01
}

vrrp_instance VI_1 {                               #定义一个实例
state BACKUP                                    #设置为backup,然后通过priority控制哪台提升为主
interface eth0
virtual_router_id 51
priority 100
nopreempt                                          #在priority高的这台设置这个参数,方便当主恢复后
advert_int 1                                        #可以自动接管
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
10.0.0.199 dev eth0 label eth0:0                #这里使用label标签启用eth0:0
}
}

virtual_server 10.0.0.199 80 {                        #这里往下是定义LVS
delay_loop 6
lb_algo rr
lb_kind DR
nat_mask 255.255.255.0
protocol TCP

real_server 10.0.0.191 80 {                            #其中一台是本地web服务
weight 1
TCP_CHECK {
connect_timeout 3
}
}
real_server 10.0.0.192 80 {             #另一台的web服务
weight 1
TCP_CHECK {
connect_timeout 3
}
}
}
第二台机器的keepalived文件文件如下

编辑/etc/keepalived/keepalived.conf

# vi /etc/keepalived/keepalived.conf ,添加如下内容

! Configuration File for keepalived

global_defs {
notification_email {
admin@example.com
}
notification_email_from admin@example.com
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id linux02
}

vrrp_instance VI_1 {                               #定义一个实例
state BACKUP                                    #设置为backup,然后通过priority控制哪台提升为主
interface eth0
virtual_router_id 51
priority 50
advert_int 1                                        #可以自动接管
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
10.0.0.199 dev eth0 label eth0:0                #这里使用label标签启用eth0:0
}
}

virtual_server 10.0.0.199 80 {                        #这里往下是定义LVS
delay_loop 6
lb_algo rr
lb_kind DR
nat_mask 255.255.255.0
protocol TCP

real_server 10.0.0.191 80 {                            #其中一台是本地web服务
weight 1
TCP_CHECK {
connect_timeout 3
}
}
real_server 10.0.0.192 80 {             #另一台的web服务
weight 1
TCP_CHECK {
connect_timeout 3
}
}
}
keepalived配置文件修改完后,开始修改apache的默认页vi /opt/apache/apache-2.4.29/htdocs/index.html 只要两个默认的文件内容不一样就好。

关于本机启动回环地址

众所周知,要是用lvs的dr模式,必须在realserver上启动回环地址,所以,搭建两台机器的负载均衡,当然就得在本机也启动相应的回环地址,才能实现所要的功能,脚本如下:(以下两个脚本为蚊子原创,蚊子网站地址http://www.wenzizone.cn)
# vi /usr/local/bin/startlo

#!/bin/sh

VIP=10.0.0.199

case "$1" in
stop)
# close lo:0 interface

echo $"Close lo:0 interface"
/sbin/route del -host $VIP dev lo:0
/sbin/ifconfig lo:0 down
echo "0">/proc/sys/net/ipv4/conf/all/arp_announce
echo "0">/proc/sys/net/ipv4/conf/all/arp_ignore
echo "0">/proc/sys/net/ipv4/conf/lo/arp_announce
echo "0">/proc/sys/net/ipv4/conf/lo/arp_ignore
;;
start)
# start lo:0 interface

echo $"Start lo:0 interface"
/sbin/ifconfig lo:0 $VIP/32 broadcast $VIP up
/sbin/route add -host $VIP dev lo:0
echo "2">/proc/sys/net/ipv4/conf/all/arp_announce
echo "1">/proc/sys/net/ipv4/conf/all/arp_ignore
echo "2">/proc/sys/net/ipv4/conf/lo/arp_announce
echo "1">/proc/sys/net/ipv4/conf/lo/arp_ignore
;;
*)
echo $"Usage: $0 (start|stop)"
exit 1
;;
esac

但由于keepalived不像heartbeat里有ldirectord来控制回环地址的启动和停止,所以我们需要人为的判断应该在哪台机器上启动回环地址,所以蚊子就写了下面的一个脚本,

# vi /usr/local/bin/check_interface

#!/bin/bash
#
#作者:蚊子
#
#脚本说明:
#本脚本用于判断当前server是否是master
#如果当前server不是master,则启动回环地址
#否则停止回环地址
#
#VIP_interface请根据自己的情况自行设定,这个是VIP接口
#lo_interface请根据自己的情况自行设定,是回环地址接口

VIP_interface="eth0:0"
lo_interface="lo:0"

i=10

while [ $i != 0 ]
do
/sbin/ifconfig |grep $VIP_interface &>/dev/null
retval=$?
if [ ! $retval -eq 0 ];then
/sbin/ifconfig |grep $lo_interface &>/dev/null
retval=$?
if [ ! $retval -eq 0 ];then
/usr/local/bin/startlo start
fi
else
/sbin/ifconfig |grep $lo_interface &>/dev/null
retval=$?
if [ $retval -eq 0 ];then
/usr/local/bin/startlo stop
fi
fi
i=10
sleep 10
done

两台机器都新建完两个脚本后, 到此,一切准备就绪就可以测试了

首先将所有需要的脚本设置可执行权限。依次启动相应的服务

A、apache随机启动就不用启动了
B、# /usr/local/bin/check_interface
C、#service keepalived start
如果没有任何报错,说明服务已经启动,keepalived的日志存放在/var/log/messages中,如果有错误,请自行查看

测试1:当前状态下测试负载均衡情况

方法:打开ie浏览器,输入http://192.168.211.110,然后不断用ctrl+F5强制刷新,可以看到网页内容在linux01和linux02中切换

测试2:停止linux01的keepalive,测试负载均衡情况

方法:

A、/etc/init.d/keepalived stop
然后等待几秒可以看到linux01上的lo:0地址已经启动,而linux02上的lo:0已经停止

B、打开ie浏览器,输入http://192.168.211.110,然后不断用ctrl+F5强制刷新,可以看到网页内容在linux01和linux02中切换

测试3:开启linux01上的keepalived,观察linux01是否切换回master

方法:启动keepalived程序,使用ifconfig观察linux01上已经启动了eth0:0接口,同时lo:0接口停止,linux02上eth0;0接口停止,同时lo:0接口启动

apache双机搭建高可用负载均衡的教程已经写完,有什么问题可以下面留言一起讨论交流

标签: apache apache负载均衡
最后更新:2021年10月11日

admin

这个人很懒,什么都没留下

点赞
< 上一篇
下一篇 >

文章评论

取消回复
广告
搜索
最新 热点 随机
最新 热点 随机
泰坦第四季第二部分4月13日上映阿里云盘 继承之战第四季阿里云盘3月26日更新 太阳召唤第二季阿里云盘 小美人鱼真人版阿里云盘待更新 魔术师的大象阿里网盘待更新 梅森探案集第二季阿里云盘 黑暗荣耀第二季阿里云盘 曼达洛人第三季中字4k阿里网盘 ChatGPT for Wechat-在微信上使用ChatGPT Netflix奈飞,HBO Max,Disney+账号会员合租共享 免费的ChatGPT API接口网站-The Free ChatGPT API 最后的生还者4k阿里云盘分享 Ahrefs账号-Ahrefs的终极使用教程 Moz Pro共享账号-Moz工具完整教程 Moz Pro团购账号 Ahrefs正版账号共享使用 Ahrefs共享团购账号 Wordpress文章列表没有缩略图就显示默认图片 SEMrush 团购账号-SEMrush 的优点 2023最新Semrush正版账号共享使用 Semrush团购账号 SEMrush是什么-semrush使用教程 谷歌SEO关键词调研工具SEMRUSH如何使用 wordpress 产品图片放大镜效果制作 phpmyadmin 修改表 Table 'wp_options' is read only GSA Search Engine Ranker 项目窗口详细介绍 iRedMail 支持的密码 Wild Rift 英雄联盟手游美服转日服(国际服之间的转换)教程 网站更换主题喽 Burn It All Down (ft. PVRIS) _Worlds 2021 - League of Legends
免费的ChatGPT API接口网站-The Free ChatGPT APINetflix奈飞,HBO Max,Disney+账号会员合租共享ChatGPT for Wechat-在微信上使用ChatGPT曼达洛人第三季中字4k阿里网盘黑暗荣耀第二季阿里云盘梅森探案集第二季阿里云盘魔术师的大象阿里网盘待更新小美人鱼真人版阿里云盘待更新太阳召唤第二季阿里云盘继承之战第四季阿里云盘3月26日更新泰坦第四季第二部分4月13日上映阿里云盘
号外号外谷歌字体国内已经正常打开 dedecms信息发布员查看自定义表单内容 为什么要研究页面价值 网络营销_如何利用新浪微博营销 免费的ChatGPT API接口网站-The Free ChatGPT API 如何将你裂变与转换的效率提升10倍 网络口碑传播的特点 wordpress调用某分类文章代码分享 网站内容不能被充分收录的原因 iPhone5来了你会买吗 凤凰博客又一个神奇的博客推广利器 个人网站怎么通过网站赚钱 北京seo开博第一篇 Google搜索新算法,严惩侵权的网站 seo博客_seo寻找资源的方法终极解密 SEMrush是什么-semrush使用教程 seo工具_史上最好用的网站地图生成工具 json gbk转utf8 seo博客_网站js代码优化 百度搜索医疗行业网站新增加备案信息 新手做淘宝电商要学会的心态 北京seo介绍了最新的百度知道挂链接的技巧 运营微信从定位开始 GSA Search Engine Ranker 项目窗口详细介绍 百度外链工具如何批量拒绝垃圾链接 如何通过诱导点击策略做SEO排名? dedecms 点击加载更多功能的实现 谷歌feedburner邮件订阅详细介绍 百度网页搜索结果robots提示上线 史上最昂贵域名 Top 10

© 2012-2023 sem-home.com.版权所有.友情链接:章丘新闻

主题KRATOS貌似作者网站打不开了,就没加,嗯就这样

京ICP备12020022号