NFS在web服务器中应用

1.1 NFS在网站上的应用

1.1.1 应用环境

场景1

用户A上传了一张图片,由于web服务器同步不及时或出现故障

此时B用户访问此图片时,有可能被分配去访问web2或web3,结果无法看到A用户上传的图片


www1.png

场景2

用户A上传了一张图片,此图片存储在后端共享存储上

此时用户B访问此图片时,不管时访问web或web3,结果都是可以看到A用户上传的图片

www2.png

1.1.2 NFS实现场景2中的共享存储

生产环境中的要求

  1. 共享存储中用户数据的安全性
  • NFS服务器 都创建一个www账户(确保客户端www 服务端用户 uid数值一致)
  • NFS服务器中web共享存储目录权限设置成www
  • 配置no_all_squash www----->www 用户身份不转换 , www用户直接访问web共享存储目录(只有www用户有权限管保证了数据的安全性)
  1. 共享目录的管理
  • NFS存储服务器生产环境中存储很多数据并不是所有人都有权限访问,

  • web服务器中的root需要管理web共享存储目录

  • 配置root_squash root---->nfsnobody root用户转换成了nfsnobody 没有权限访问web共享存储目录

  • 修改anonuid=1005,anongid=1005 可以将root 转换成NFS服务器中的www用户就可以对web共享存储目录进行管理

  1. 查看nfs服务的默认配置

    [root@ www]# cat /var/lib/nfs/etab --- 记录nfs服务的默认配置记录信息
    /data/www 172.17.1.101(rw,sync,wdelay,hide,nocrossmnt,secure,root_squash,no_all_squash,no_subtree_check,secure_locks,acl,no_pnfs,anonuid=65534,anongid=65534,sec=sys,rw,secure,root_squash,no_all_squash)

NFS在web应用中的实现过程

#-----------NFS即场景2中共享存储服务器-----------

#step1  安装nfs和rpc
rpm -qa|grep -E "nfs|rpc"
yum install -y nfs-utils rpcbind

#step2  编辑nfs配置文件
[root@ ~]# cat<<-EOF > /etc/exports
/data/ 172.17.1.101(rw,root_squash,no_all_squash,anonuid=1005,anongid=1005)
/data/ 172.17.1.101(rw,root_squash,no_all_squash,anonuid=1005,anongid=1005)
/data/ 172.17.1.101(rw,root_squash,no_all_squash,anonuid=1005,anongid=1005)
EOF

#step3 创建共享存储目录
mkdir /data/www

#step4 创建www虚拟用户 id未被使用(用户名和id与web服务器一致)
useradd -u 1005  -s /sbin/nologin www

#step5 将共享存储目录属主属组改成www
chown www. /data/www

#step6 启动服务
#启动 rpc服务
systemctl start rpcbind.service 
systemctl enable rpcbind.service
#再启动 nfs服务
systemctl start nfs
systemctl enable nfs

#-----------场景2中web服务器的配置-----------
#三个服务器中的配置都是相同的

#step1 安装nfs 提供网络文件系统
yum -y install nfs-utils

#step2 创建www虚拟用户 与NFS服务器上的www用户id一致 (用户名和id与NFS服务器一致)
useradd -u 1005  -s /sbin/nologin www

#step3 挂载网络存储目录到 /var/www
mount -t nfs 172.17.1.105:/data/www /var/www
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容