设为首页 收藏本站
查看: 1102|回复: 0

[经验分享] Rsync+Inotify+LVS实现Discuz的负载均衡

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-1-25 09:34:15 | 显示全部楼层 |阅读模式
Rsync+Inotify+LVS实现Web Service的负载均衡

实验环境:
系统: CentOS6.7
服务: LVS
类型: DR模型
机器:
LVS-Director:
    DIP: dev eth0 172.16.100.2/24 GW: 172.16.100.254
    VIP: dev eth0:0  172.16.100.1/24 GW: 172.16.100.254
LVS-RS1: 发布网页文件服务器
    VIP dev lo:0  172.16.100.1/32
    RIP dev eth0 172.16.100.7/24 GW: 172.16.100.254
LVS-RS2: Rsync同步服务器
    VIP dev lo:0 172.16.100.1/32
    RIP dev eth0 172.16.100.8/24 GW: 172.16.100.254
DataBase:
    IP dev eth0 172.16.100.200/24 GW: 172.16.100.254




部署步骤:
1.部署LVS-DR
2.配置DataBase主机Mysql数据库
3.在RS1上安装Discuz并连接到DataBase主机数据库上
4.使用Rsync+Inotify实现对RS1,RS2网站目录的同步
5.测试



实验步骤:
网络配置:
##由于LVS-DR中关于网络部分的配置较为繁琐,故在此详细解释

LVS-Director: #这里为临时配置,若需永久生效请自行修改配置文件
1
ifconfig eth0 172.16.100.2



1
ifconfig eth0:0 172.16.100.1



LVS-RS1: #这里为临时配置,若需永久生效请自行修改配置文件
1
2
3
4
5
6
7
ifconfig eth0 172.16.100.7  
sysctl -w net.ipv4.conf.eth0.arp_ignore=1
sysctl -w net.ipv4.conf.all.arp_ignore=1
sysctl -w net.ipv4.conf.all.arp_announce=2
sysctl -w net.ipv4.conf.all.arp_announce=2
ifconifg lo:0 172.16.100.1 netmask 255.255.255.255 broadcast 172.16.100.1
route add -host 172.16.100.1 dev lo:0



LVS-RS2: #这里为临时配置,若需永久生效请自行修改配置文件
1
2
3
4
5
6
7
ifconfig eth0 172.16.100.8
sysctl -w net.ipv4.conf.eth0.arp_ignore=1
sysctl -w net.ipv4.conf.all.arp_ignore=1
sysctl -w net.ipv4.conf.all.arp_announce=2
sysctl -w net.ipv4.conf.all.arp_announce=2
ifconifg lo:0 172.16.100.1 netmask 255.255.255.255 broadcast 172.16.100.1
route add -host 172.16.100.1 dev lo:0




ipvs配置:
LVS-Director:
1
2
3
ipvsadm -A -t 172.16.100.1:80 -s wlc -p  #由于没有共享session,这里需使用持久连接
ipvsadm -a -t 172.16.100.1:80 -r 172.16.100.7 -g -w 2
ipvsadm -a -t 172.16.100.1:80 -r 172.16.100.8 -g -w 1




DataBase主机配置:

DataBase:

1
2
3
4
5
6
yum install mysql-server #安装mysql数据库
service mysqld start #启动mysql服务
iptables -F #清空iptables规则
mysql -uroot -p -e 'create database discuzdatabase;' #创建discuz数据库
mysql -uroot -p -e "grant all on discuzdatabase.* to discuz@'%' identified by 'YOUPASS';" #创建discuz用户并赋予管理discuzdatabase的权限
mysql -uroot -p -e 'flush privileges;' #刷新mysql权限




配置Web服务:
##注意事项: 由于Rsync+Inotify的一些机制,故先在RS1上完全配置好Discuz在使用Rsync同步


LVS-RS1:
自行参考教程安装discuz和httpd服务

配置Rsyncd:
LVS-RS2:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
vim /etc/rsyncd.conf  #配置Rsyncd配置文件
uid=root  #root为Rsync守护进程的用户
gid=root  #root为Rsync守护进程的组
use chroot=no  #不使用chroot
max connections=0  #设置最大连接数,为0为无限制
log file=/var/log/rsyncd.log  #配置日志文件位置
pid file=/var/run/rsyncd.pid  #pid文件存放位置
lock file=/var/run/rsyncd.lock  #锁文件存放位置
[webdir]
path=/var/www/html/
comment=rsync from 172.16.100.7
read only=no
list=no
启动Rsync服务 #启动前检查防火墙规则和SElinux是否关闭
rsync --port=873 --address=172.16.100.8 --daemon



LVS-RS1:
同步文件
1
rsync -avH --delete --progress /var/www/html/ 172.16.100.8::webdir




Inotify配置
安装Inotify
1
2
./configure --prefix=/usr/local/inotify ##自行下载Inotify
make && make install




编写Inotify同步脚本
vim inotify.sh
1
2
3
4
5
6
7
8
9
10
11
#START
#!/bin/bash
src="/var/www/html/"
host="172.16.100.8"
module="webdir"
/usr/local/inotify/bin/inotifywait -mr --timefmt '%d/%m/%y %H:%M' --format '%T %w %f' -e close_write,modify,delete,create,attrib $src |  while read DATE TIME DIR FILE; do
FILECHANGE=${DIR}${FILE}
/usr/bin/rsync -avH --delete --progress   --exclude-from="/usr/local/inotify/logs/rules.txt" rsyncuser@$host::$module &
echo "At ${TIME} on ${DATE}, file $FILECHANGE was backed up via rsync" >> $log
done
#END




1
2
chmod a+x inotify.sh  #给脚本添加执行权限
./inotify.sh &  #让脚本在后台运行



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-169115-1-1.html 上篇帖子: lvs+keepalived 下篇帖子: LVS负载均衡架设,DR模式
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表