1.配置环境
角色 外网IP(NAT) 内网IP(LAN) 安装工具
web01 eth0:10.0.0.7 172.16.1.7 httpd php
nfs eth0:10.0.0.31 172.16.1.31 nfs inotify-tools sersync
backup eth0:10.0.0.41 172.16.1.41 rsync-server
1.nfs服务器端操作如下:
1.首先安装nfs
yum install nfs-utils -y
2.配置nfs
在/etc/exports编辑如下内容
/data 172.16.1.0/24(rw,sync,all_squash,anonuid=666,anongid=666)
3.创建共享的目录
mkdir -p /data
4.创建组和用户
groupadd -g 666 www
useradd -g 666 -u 666 -M -s /sbin/nologin www
5.授权
chown -R www.www /data
6.重启nfs并加入开机自启
systemctl restart nfs
systemctl enable nfs
7.检查是否真的启动了NFS服务 并共享的目录是否正常
cat /var/lib/nfs/etab
#返回的信息
2.web服务端操作
1.首先安装httpd php
yum install httpd php -y
2.配置httpd php
暂时不需要配置
3.仅启动httpd
systmctl start httpd
4.检查httpd是否正常
首先写入一些东西然后在浏览器输入IP进行查看
echo "Shanghai-Oldboyedu.com-4" > /var/www/html/index.html
PS:index.html文件是创建的文件
5.将wdb服务器的站点目录挂载到NFS存储的/data目录
(此时web的/var/www/html是nfs/data的一个入口目录)
mount -t nfs 172.16.1.31:/data /var/www/html/
使用df -h 查看一下挂载情况
6.然后上传作业代码进行测试是否能将用户上床的文件或者视频写入存储中
cd /var/www/html/
把首先准备好的zip压缩包推拽到web服务器
然后进行解压
unzip kaoshi.zip
然后再次进行访问会显示上传作业的界面
3.backup备份服务器操作如下
1.首先安装rsync
yum install rsync -y
2.配置rsync
使用vim编辑rsyncd.conf内容如下
gid = www
port = 873
fake super = yes
use chroot = no
max connections = 200
timeout = 600
ignore errors
read only = false
list = false
auth users = rsync_backup
secrets file = /etc/rsync.passwd
log file = /var/log/rsyncd.log
#####################################
[backup]
path = /backup
path = /data
7.重启rsync
systemctl restart rsyncd
4.nfs服务端操作如下
1.安装epel源
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
2.下载inotify-tools通知工具
yum install inotify-tools -y
3.把事先准备好的sersync拖拽到服务器 也可以使用wget去下载
4.解压sersync压缩包
tar xf sersync2.5.4_64bit_binary_stable_final.tar.gz
5.把解压出来的GNU-Linux-x86/目录移动到/usr/local/下命名为sersync
mv GNU-Linux-x86/ /usr/local/sersync
6.编辑sersync目录下的confxml.xml配置文件 修改配置文件内容如下 首行为行列
5 <fileSystem xfs="true"/> <!-- 文件系统 -->
12 <inotify> <!-- 监控的事件类型 -->
13 <delete start="true"/>
14 <createFolder start="true"/>
15 <createFile start="true"/>
16 <closeWrite start="true"/>
17 <moveFrom start="true"/>
18 <moveTo start="true"/>
19 <attrib start="true"/>
20 <modify start="true"/>
21 </inotify>
23 <sersync>
24 <localpath watch="/data"> <!-- 监控的目录 -->
25 <remote ip="172.16.1.41" name="data"/> <!-- backup的IP以及模块 -->
28 </localpath>
29 <rsync> <!-- rsync的选项 -->
30 <commonParams params="-az"/>
31 <auth start="true" users="rsync_backup" passwordfile="/etc/rsync.pass"/>
32 <userDefinedPort start="false" port="874"/><!-- port=874 -->
33 <timeout start="true" time="100"/><!-- timeout=100 -->
34 <ssh start="false"/>
35 </rsync>
7.创建密码文件
echo "123456" > /etc/rsync.pass
8.修改密码文件的权限为600
chmod 600 /etc/rsync.pass
9.在启动sersync之前可以先使用-h查看一下参数
/usr/local/sersync/sersync2 -h
参数-d:启用守护进程模式
参数-r:在监控前,将监控目录与远程主机用rsync命令推送一遍
参数-n: 指定开启守护线程的数量,默认为10个
参数-o:指定配置文件,默认使用confxml.xml文件
参数-m:单独启用其他模块,使用 -m refreshCDN 开启刷新CDN模块
参数-m:单独启用其他模块,使用 -m socket 开启socket模块
参数-m:单独启用其他模块,使用 -m http 开启http模块
不加-m参数,则默认执行同步程序
10.启动sersync
/usr/local/sersync/sersync2 -dro /usr/local/sersync/confxml.xml
PS:建议抓取sersync的命令,手动测试一次 (当发现不同步的时候)
(cd /data && rsync -avz -R --delete ./ --timeout=100 rsync_backup@