NFS是Network File System的缩写及网络文件系统。NFS主要功能是通过局域网络让不同的主机系统之间可以共享文件或目录。
NFS系统和Windows网络共享、网络驱动器类似, 只不过windows用于局域网, NFS用于企业集群架构中, 如果是大型网站, 会用到更复杂的分布式文件系统FastDFS,glusterfs,HDFS,ceph
1、首先下载软件 nfs-utils rpcbind
[root@nfs ~]# yum install nfs-utils rpcbind -y
2、创建挂载点
[root@nfs ~]# mkdir /web/nfs
3、配置挂载点
[root@nfs ~]# vim /etc/exports # 格式: [挂载点] [可以访问的IP]([权限]) /web/nfs 172.16.1.0/20(rw,sync,all_squash)
4、关闭selinux和防火墙
[root@nfs ~]# setenforce 0 [root@nfs ~]# systemctl disable --now firewalld
5、启动Nfs和rpcbind服务
[root@nfs ~]# systemctl start nfs-server [root@nfs ~]# systemctl start rpcbind
6、检查服务端是否正常
# 格式:showmount -e [服务端的地址,默认是本机地址] [root@nfs ~]# showmount -e [root@nfs ~]# showmount -e 172.16.1.31
7、给挂载点授权
[root@nfs ~]# chown -R nfsnobody.nfsnobody /web
1、安装NFS
[root@web01 opt]# yum install -y nfs-utils
2、创建目录
[root@web01 opt]# mkdir /opt/nfs/
3、挂载NFS
[root@web01 opt]# mount -t nfs 172.16.1.31:/web/nfs /opt/nfs/
4、测试NFS文件同步功能
在web服务器/web/nfs目录下创建文件,查看nfs服务器/web/nfs目录下是否同步。
nfs共享参数 | 参数作用 |
---|---|
rw | 读写权限(常用) |
ro | 只读权限 (不常用) |
root_squash | 当NFS客户端以root管理员访问时,映射为NFS服务器的匿名用户 (不常用) |
no_root_squash | 当NFS客户端以root管理员访问时,映射为NFS服务器的root管理员 (不常用) |
all_squash | 无论NFS客户端使用什么账户访问,均映射为NFS服务器的匿名用户 (常用) |
no_all_squash | 无论NFS客户端使用什么账户访问,都不进行压缩 (不常用) |
sync | 同时将数据写入到内存与硬盘中,保证不丢失数据 (常用) |
async | 优先将数据保存到内存,然后再写入硬盘;这样效率更高,但可能会丢失数据 (不常用) |
anonuid | 配置all_squash使用,指定NFS的用户UID,必须存在系统 (常用) |
anongid | 配置all_squash使用,指定NFS的用户GID,必须存在系统 (常用) |
根据配置详情,我们优化下指定操作NFS的用户,即统一用户。
# 通常创建用户名 www groupadd www -g 666 useradd www -u 666 -g 666 -M -r -s /sbin/nologin chown -R www.www /web/
1、安装软件
yum install httpd php php-devel -y
2、将代码放置于网站的根目录
cd /var/www/html/
3、授权
chown -R www.www /var/www/html
4、关闭selinux和防火墙
setenforce 0 systemctl disable --now firewalld
5、修改web软件的用户
vim /etc/httpd/conf/httpd.conf User www Group www
6、启动web软件
systemctl start httpd
7、测试
上传图片成功后,查看上传的文件。
1、修改NFS配置文件
[root@nfs nfs]# vim /etc/exports # 修改内容如下 /web/upload 172.16.1.0/20(rw,sync,all_squash,anonuid=666,anongid=666)
2、创建挂载点
[root@nfs nfs]# mkdir /web/upload [root@nfs nfs]# chown www.www /web/upload
3、重启NFS
[root@nfs nfs]# systemctl restart nfs-server rpcbind
4、客户端安装NFS软件
# web服务器都安装nfs-utils [root@web01 html]# yum install nfs-utils -y [root@web02 html]# yum install nfs-utils -y [root@web03 html]# yum install nfs-utils -y
5、挂载
# web01服务器 ip:172.16.1.7 [root@web01 html]# mount -t nfs 172.16.1.31:/web/upload /var/www/html/upload # web02服务器 ip:172.16.1.8 [root@web02 html]# mount -t nfs 172.16.1.31:/web/upload /var/www/html/upload # web03服务器 ip:172.16.1.9 [root@web03 html]# mount -t nfs 172.16.1.31:/web/upload /var/www/html/upload
6、测试用web02上传,web03查看