Rsync+Inotify+LVS实现Discuz的负载均衡

前言:

本文章转自我的个人博客 http://www.anyisalin.com 欢迎大家访问

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: #这里为临时配置,若需永久生效请自行修改配置文件

ifconfig eth0 172.16.100.2
ifconfig eth0:0 172.16.100.1

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

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: #这里为临时配置,若需永久生效请自行修改配置文件

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:

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:

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 [email protected]‘%‘ 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:

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:

同步文件

 rsync -avH --delete --progress /var/www/html/ 172.16.100.8::webdir

Inotify配置

安装Inotify

 ./configure --prefix=/usr/local/inotify ##自行下载Inotify
 make && make install

编写Inotify同步脚本

vim inotify.sh

 #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" [email protected]$host::$module &
echo "At ${TIME} on ${DATE}, file $FILECHANGE was backed up via rsync" >> $log
done
#END
chmod a+x inotify.sh  #给脚本添加执行权限
./inotify.sh &  #让脚本在后台运行
时间: 2024-10-14 00:51:26

Rsync+Inotify+LVS实现Discuz的负载均衡的相关文章

LVS详解及基于LVS实现web服务器负载均衡

前言 LVS(Linux Virtual Server)Linux虚拟服务器,是一个虚拟的服务器集群系统.本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一.通过LVS提供的负载均衡技术和Linux操作系统可实现一个高性能.高可用的服务器群集,从而以低成本实现最优的服务性能. 集群基础 集群简介 集群(Cluster)是一组相互独立的.通过高速网络互联的计算机,它们构成了一个组,并以单一系统的模式加以管理.一个客户与集群相互作用时,集群像是一个独立的服务器.集群配置是用

高可用集群技术之keepalived实现lvs高可用并负载均衡web服务

Keepalived概述: Keepalived的作用是检测服务器的状态,如果有一台web服务器死机,或工作出现故障,Keepalived将检测到,并将有故障的服务器从系统中剔除,同时使用其他服务器代替该服务器的工作,当服务器工作正常后Keepalived自动将服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的服务器. keepalived实现lvs高可用并负载均衡web服务: 准备工作: 2台keepalived节点为: node1.samlee.com

Heartbeat+LVS+Ldirectord高可用&负载均衡

集群技术主要分为三大类: 高可用性(High Available Cluster),例:Linux-HA 负载均衡(Load balancing Cluster),例:LVS.MOSIX 高性能计算(High Performance Computing),例:Beowulf 我们这里使用 RHEL5.2,LVS,Linux-HA,Ldirectord,构造一个高可用的负载均 衡集群系统.如图: Load Balancer 是整个集群系统的前端,负责把客户请求转发到 Real Server 上.

DNS+keepalived+lvs实现高可用负载均衡集群

1.目的: 部署两台lvs调度器并利用keepalived实现主主模型,DNS添加两条A记录指向lvs调度器实现轮询,最终实现高可用负载均衡集群效果 2.拓扑规划: 3.配置实践 (1)同步所有机器时间 在每台机器实行ntp同步: [[email protected] ~]# ntpdate 10.1.0.1 26 Oct 20:10:57 ntpdate[5533]: step time server 10.1.0.1 offset -32408.643564 sec (2)先配置RS,在RS

LVS+Heartbeat高可用负载均衡

一,环境配置 VIP:192.168.222.222 RIP:192.168.222.134 RIP:192.168.222.135 DR_MASTER:eth0 192.168.222.128 eth1 172.16.0.1 (单网卡也行) DR_SLAVE:eth0 192.168.222.129 eth1 172.16.0.2 (单网卡也行) 二,DR配置 1,安装软件 yum install epel-release -y yum install ipvsadm -y yum insta

通过LVS实现http的负载均衡

通过LVS实现http的负载均衡 1.摘要 本文不考虑双机互备,通过脚本和lvs实现http的负载均衡,实际生产环境使用集群 2.安装 1).软件包准备 ipvsadm-1.26.tar.gz httpd-2.2.23.tar.gz 2).配置Director Server a.检查kernel是否已经支持LVS的ipvs模块 # modprobe -l |grep ipvs kernel/net/netfilter/ipvs/ip_vs.ko kernel/net/netfilter/ipvs

(2)LVS+Keepalived高可用负载均衡架构原理及配置

1.keepalived 介绍2.keepalived 优缺点3.keepalived 应用场景4.keepalived 安装配置5.keepalived+lvs 高可用6.keepalived+nginx 高可用7.keepalived 切换原理8.性能优化9.常见故障 一.keepalived 介绍 1.keepalived 定义keepalived是一个基于VRRP(virtual route redundent protocol)协议来实现的LVS服务高可用方案,可以利用其来避免单点故障

keepalived实现lvs高可用并负载均衡lamp

一.安装lamp 1.安装httpd(172.16.23.211) [[email protected] ~]# yum install -y httpd 2.安装php(172.16.23.211) [[email protected] ~]# yum install -y php 3.安装php-mysql(172.16.23.211) [[email protected] ~]# yum install -y php-mysql 4.安装mariadb(172.16.23.211 Cent

3-5-基于LVS实现4层负载均衡配置和DR模型实战

DR类型directer只响应请求报文,然后调度某一个RS,而响应报文由RS直接返回给请求者RS和directer都需要配置VIP,(在同一网络中有可能冲突)本地局域网通告(通告自己的IP),ARP广播通告,ARP广播请求的响应RS配置VIP仅用于构建响应报文的源地址,不是用来真正通信的为了实现请求报文直接发送给director,而不是RS,有三种方式1.在路由器出口处做静态绑定,最不靠谱(因为director要做冗余的,需要重新绑定,二是不能阻断RS的ARP响应)2.在RS上安装arptabl