目录:
背景:
由于业务驱动,为了提高用户的访问效率,现需要将原有的web服务器上的静态资源文件分离出来,单独保存到一台文件服务器上
任务背景:
- 搭建 NFS 服务器(用作静态资源的存储如图片,视频,附件)
- 使用 mount 指定对NFS服务器进行挂载,挂载到web服务器中
- 对 NFS 服务器中的静态资源进行实时备份(inotify+rsync)
环境准备:
编号 | 主机名称 | IP地址 | 作用 |
---|---|---|---|
1 | NFS-web | 192.168.74.10 | web服务器 |
2 | NFS | 192.168.74.11 | NFS服务器 |
3 | NFS-bak | 192.168.74.12 | backup服务器,用作对NFS服务器中静态资源进行实时备份 |
第一步:
设置计算机的主机名
hostnamectl set-hostname 主机名
第二步:
设置IP地址
vi /etc/sysconfig/network-scripts/ifcfg-ens33
BOOTPROTO=none
ONBOOT=yes
IPADDR=192.168.74.12
NETMASK=255.255.255.0
GATEWAY=192.168.74.2
DNS1=8.8.8.8
把这个配置文件里的UUID修改最后三位,保证三台机器的UUID不一样,或者直接删了!
第三步:
关闭防火墙和selinux
systemctl stop firewalld
systemctl disable firewalld (永久关闭)
setenforce 0 (临时关闭selinux)
vi /etc/selinux/config
第四步:
配置yum源,有网络的话
yum clean all
yum makecache
用系统自带的yum就行了
NFS概述:
- NFS(network file system)网络文件系统,主要用于linux系统上实现文件共享的一种协议,其客户端主要是linux
- 没有用户认证机制,且数据在网络上是明文传输,一般只能在局域网中使用
- 支持多节点同时挂载及并发写入
- 企业应用:为集群中的 web server 提供后端存储(做静态资源服务器)
NFS组成:
RPC(remote procedure call protocol)
远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,不需要了解底层网络技术的协议
rpcbind:负责NFS的数据传输,远程过程调用 tcp/udp 协议,端口111
nfs-utils:控制共享哪些文件,权限管理
安装NFS软件:
yum install -y rpcbind nfs-utils
NFS配置文件:
任务解决方案
搭建NFS服务器:
第一步:安装软件
yum install -y nfs-utils rpcbind
第二步:创建一个共享目录,如/share
mkdir /share
编写NFS主配置文件:
vim /etc/exports
共享目录 共享选项
启动相关的NFS服务:
查看一下端口占用情况 (111端口,rpcbind)
搭建web服务器
yum install -y httpd
systemctl start httpd
然后在index.html文件中写入东西,在网页上可以访问,web服务器即搭建成功
当apache启动后,会自动占用计算机的80端口。
80端口指向web服务器额目录 => /var/www/html
所以项目源代码都可以直接存放在/var/www/html目录下
在web服务器中挂载NFS
在/var/www/html目录下创建一个media文件,用来存放资源
刚开始挂载如果出现错误,需要安装yum install -y libnfs-utils.x86_64;yum install -y nfs-utils nfs4-acl-tools 如果没有libnfs-utils这个包,安装一个epel-release源即可
然后就挂载好啦!
上传静态资源到 NFS服务器的/share
我在/share上传了一张静态照片
上传完之后呢,在web服务器上也可以看到我上传的这个照片
在html网页中调用lin.jpg(我上传的)文件
vim /var/www/html/index.html
接着咱们访问网页(这个照片的框架是出来了,但是照片没显示出来就有点尴尬了,不过情况就是这么个情况没错了)
对 NFS 服务器进行实时备份
NFS 服务器: /share目录有变化,马上rsync进行同步NFS-bak备份服务器的 /backup 目录
第一步:
安装inotify工具(NFS 服务器)
咱们将这个软件包拷贝过来,想要包的可以私信哦
第二步:
编写rsync.sh脚本,监控/share目录的变化
第三步:
添加可执行文件
chmod +x rsync.sh
第四步:
把 NFS 服务器和 NFS-bak 服务器进行免密登入
ssh-keygen
ssh-copy-id root@192.168.74.12(192.168.74.12是备份服务器的)
第五步:
在NFS-back 服务器中创建一个 /backup目录,用于实时备份
第六步:
在 NFS 服务器中执行rsync脚本
nohup ./rsync.sh &(&代表后台运行)
然后在/share目录中添加文件,在备份机器上的/backup目录下也会有