rsync实现集群文件同步、nginx负载均衡反向代理、session共享,mysql主从复制读写分离--笔记

本文详细介绍了如何使用rsync在三台服务器之间实现文件同步,配置nginx进行负载均衡反向代理,以及解决session共享问题。同时,通过mysql主从复制实现了读写分离,确保了数据的一致性和高可用性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

rsync实现集群文件同步、nginx负载均衡反向代理、session共享,mysql主从复制读写分离--笔记

rsync实现集群文件同步

使用三台服务器:

192.168.75.133 web_01服务器
192.168.75.134 web_02服务器
192.168.75.135 web_03服务器+线上测试环境+源站

web_01、web_02服务器为集群中的web服务器,对外开放,是负载均衡集群的部分。

其中web_03 服务器不对外开放,代码发布到该服务器,在该服务器上进行测试,完成后程序由该服务器同步到其他集群服务器上,同时自动脚本位于该服务器上。

这里为了方便,在web_03服务器上制定一个规则,即只要rsync.txt存在我们就开始同步,这样只要开发上传该文件同步就开始,同步完成后自动删除该文件。

第一步:笔者这里安装的是centos7 已经默认安装了rsync 所以不再进行安装,未安装的同学可以自行安装,过程相对简单

第二步:安装inotify inotify-tools
笔者这里centos7已经默认安装了inotify , 如果要查看是否安装可以使用如下命令在这里插入图片描述
如果列出如上三项,则证明已经安装

没有安装的读者可以自行安装,然后我们需要安装inotify-tools工具
工具下载下载地址https://sourceforge.net/projects/inotify-tools/

tar -zxvf inotify-tools-3.14.tar.gz
cd inotify-tools-3.14
./configure --prefix=/usr/local/inotify-tools
make && make install

第三步:对客户端 服务端进行配置

先要搞清楚web_03是客户端 web_01、web_02是否服务端 ,这个不要搞倒了, 是web_03的文件同步到web_01、web_02上面
首先对web_01、web_02进行配置,配置文件/etc/rsyncd.conf
在这里插入图片描述

uid = nobody
gid = nobody
use chroot = no
max connections = 10
strict mode = no
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /usr/data/rsync/rsyncd.log
[data]
path = /home/wwwroot/jcjg/
comment = web4 files
ignore errors
read only = no
write noly = no
hosts allow = 192.168.75.135
hosts deny = *
list = false
uid = root
gid = root
auth users = root
secrets file = /usr/local/rsync/conf/server.pass

/home/wwwroot/jcjg这个目录必须存在, /usr/local/rsync/conf/server.pass这个通信密码文件也必须存在
web_01、web_02通信密码文件中的内容为:

root:123abc±

然后我们对web_03进行配置,配置文件 /etc/rsyncd.conf
在这里插入图片描述

uid = nobody
gid = nobody
use chroot = no
max connections = 10
strict mode = yes
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /usr/data/rsync/rsyncd.log

建立web_03的密码文件/usr/local/rsync/conf/server.pass由于web_03是客户端,因此密码没有前缀

123abc±

设置密码文件的权限未600,chmod 600 /usr/local/rsync/conf/server.pass
以守护进程方式启动rsync:rsync --daemon --config=/etc/rsyncd.conf
测试的时候可以关闭防火墙:systemctl stop iptables.service

第四步:编写shell脚本
命名为ha-rsync.sh,内如如下:
在这里插入图片描述

#!/bin/bash
host3=192.168.75.133
host4=192.168.75.134
src=/home/wwwroot/jcjg/
excludedir= s r c " r s y n c . t x t " d s t 3 = d a t a d s t 4 = d a t a u s e r = r o o t r s y n c f i l e = src"rsync.txt" dst3=data dst4=data user=root rsync_file= src"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值