华仔博客

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

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

2018年3月29日 1660点热度 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

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

点赞
< 上一篇
下一篇 >

文章评论

取消回复
广告
搜索
最新 热点 随机
最新 热点 随机
WhatsApp收不到验证码、一小时死循环现在可付费接码 win7惠普m227fdw打印机扫描仪不能用解决办法 WordPress教程-WordPress撰写设置 GTranslate3.04翻译插件不工作的原因找到了 WordPress教程-WordPress常规设置 wordpress教程-WordPress 安装 WordPress教程-WordPress概述 wordpress 导入word文档插件Seraphinite Post .DOCX Source 谷歌SEO的页面标题和元描述的长度多长最合适? 如何利用wordpress编辑网站页面 Hitpaw watermark remover去图片视频水印神器 WordPress博客页面和文章 如何充分利用您的 SEMrush 帐户 什么是 Robots.txt 文件以及Robots.txt 文件如何工作 ? WordPress列表页分页制作教程 youtube视频响应式插件Simple YouTube Responsive WordPress文章页添加展开/收缩功能 WordPress栏目调用去掉Ul标签 WordPress如何调用置顶文章 如何使用奈飞Netflix cookies登录奈飞Netflix GSA Search Engine Ranker项目屏幕 GSA Search Engine Ranker内容创建服务推荐 GSA Search Engine Ranker 仿写服务推荐 GSA Search Engine Ranker电子邮件账户推荐 GSA Search Engine Ranker搜索引擎提交服务推荐 GSA Search Engine Ranker索引服务推荐 GSA Search Engine Ranker验证码服务推荐 GSA Search Engine Ranker代理服务推荐 GSA Search Engine Ranker介绍 ChatGPT for Wechat-在微信上使用ChatGPT
北京seo介绍下对于网店里的图片优化技巧 centos7下apache安装以及自动启动 软文营销的关键环节有哪些? Wild Rift 英雄联盟手游美服转日服(国际服之间的转换)教程 新手微商如何做论坛的推广与引流? 北京seo说下新浪博客seo的利弊 如何增强执行力将推广方法用到极致? 新手做淘宝电商要学会的心态 北京seo_404页面对seo有什么影响 史上最昂贵域名 Top 10 神盾局特工第四季熟肉中英字幕 Google搜索新算法,严惩侵权的网站 网络营销之微博营销实战分享 seo博客_关键词的密度及提高关键词密度的方法 js实现的最简单的滑动门 营销魔术师的最新举动......震撼了100万营销人 做百度知道不被删除的实战技巧 北京seo_站内优化之网站地图添加到robots.txt及提交给谷歌 转载:seowhy夫唯的人生经历 spamassassin垃圾邮件拦截插件 Mountain Lion系统php环境的搭建 WordPress栏目调用去掉Ul标签 H7N9来了,元芳,你怎么看? GSA Search Engine Ranker搜索引擎提交服务推荐 ios6的完美越狱终于快来了呼呼 dede网站建设实用篇 北京seo再解nofollow属性的链接 WordPress教程-WordPress撰写设置 GTranslate3.04翻译插件不工作的原因找到了 ecshop 首页调用文章图片 成功版

© 2012-2025 sem-home.com.版权所有.

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

京ICP备12020022号