文件共享服务之NFS挂载实验

news/2024/12/29 11:22:49/文章来源:https://www.cnblogs.com/funlyp/p/18546498

任务需求

1.部署一台web服务器,提供静态网页的展示,该网站的html等静态资源远程存储在NFS服务器。
2.部署NFS服务器,创建共享文件夹(提供静态文件),发布该共享目录,提供给web服务器使用。

主机列表

# 外网地址                内网地址          主机名
192.168.122.207   172.16.1.207  web-test-209
192.168.122.231  172.16.1.231  nfs-test-231
192.168.122.241  172.16.1.241  rsync-test-241

架构图


开始实操


1.在nfs-test-231服务器部署nfs服务端

1.1.安装nfs及rpcbind服务

[root@nfs-test-231 ~]# yum install nfs-utils rpcbind -y

1.2.启动rpcbind服务

[root@nfs-test-231 ~]# systemctl start rpcbind

1.3.创建共享目录/nfs-web-share,以及创建共享的文件

[root@nfs-test-231 ~]# mkdir -p /nfs-web-share/
[root@nfs-test-231 ~]# echo '<meta charset=utf8> 这是一个网页' > /nfs-web-share/index.html
[root@nfs-test-231 ~]# ls /nfs-web-share/
index.html

1.4.修改目录权限

[root@nfs-test-231 ~]# chown -R nfsnobody.nfsnobody /nfs-web-share/index.html 
[root@nfs-test-231 ~]# ls -l /nfs-web-share/
总用量 4
-rw-r--r-- 1 nfsnobody nfsnobody 39 11月 15 09:55 index.html

1.5.查看该用户信息

[root@nfs-test-231 ~]# grep nfsnobody /etc/passwd
nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin

1.6.修改nfs配置文件,设置共享文件的规则

insecure 是客户端从大于1024的端口发送链接
all_squash 不管是root还是其他普通用户创建的文件的属主和属组都是nfsnobody
rw  允许读写
sync 数据同步到磁盘
[root@nfs-test-231 ~]# vim /etc/exports
[root@nfs-test-231 ~]# cat /etc/exports
/nfs-web-share  172.16.1.0/24(all_squash,insecure,rw,sync)

1.7.重新加载nfs服务,查看rpcbind进程,是否出现了111端口

[root@nfs-test-231 ~]# systemctl restart nfs
[root@nfs-test-231 ~]# netstat -tnlp|grep rpc
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      11060/rpcbind       
tcp        0      0 0.0.0.0:20048           0.0.0.0:*               LISTEN      11243/rpc.mountd    
tcp        0      0 0.0.0.0:44823           0.0.0.0:*               LISTEN      11220/rpc.statd     
tcp6       0      0 :::111                  :::*                    LISTEN      11060/rpcbind       
tcp6       0      0 :::20048                :::*                    LISTEN      11243/rpc.mountd    
tcp6       0      0 :::46427                :::*                    LISTEN      11220/rpc.statd     

1.8.查看nfs服务端共享情况

[root@nfs-test-231 ~]# showmount -e
Export list for nfs-test-231:
/nfs-web-share 172.16.1.0/24

1.9.查看nfs服务端远程共享的所有参数

是系统自动生成的,以及我们配置文件里定义的,都是默认的不需要了解太多

cat /var/lib/nfs/etab
/nfs-web-share  172.16.1.0/24(rw,sync,wdelay,hide,nocrossmnt,insecure,root_squash,all_squash,no_subtree_check,secure_locks,acl,no_pnfs,anonuid=65534,anongid=65534,sec=sys,rw,insecure,root_squash,all_squash)
[root@nfs-test-231 ~]# 

1.10.把nfs服务端本地当做一个客户端,本地挂载该共享目录访问试试

挂载后,的确访问到了该共享目录的数据。

[root@nfs-test-231 ~]# mount -t nfs 172.16.1.231:/nfs-web-share /mnt
[root@nfs-test-231 ~]# ls /mnt
index.html
[root@nfs-test-231 ~]# cat /mnt/index.html 
<meta charset=utf8> 这是一个网页

1.11.取消挂载,也就看不到数据了。

[root@nfs-test-231 ~]# umount /mnt
[root@nfs-test-231 ~]# cat /mnt/index.html 
cat: /mnt/index.html: 没有那个文件或目录
[root@nfs-test-231 ~]# 

至此,nfs服务端就搞定了
注意:

/etc/exports文件的语法不要写错,细心
修改/etc/exports文件后,只需systemctl reload nfs或是exportfs -r重新加载配置,无需重启

2.在web-test-207服务器部署nfs客户端

2.1.安装nfs及rpcbind服务

[root@web-test-207 ~]# yum install nfs-utils rpcbind -y

2.2.确保rpc服务正常

[root@web-test-207 ~]# systemctl start rpcbind
[root@web-test-207 ~]# systemctl status rpcbind
● rpcbind.service - RPC bind serviceLoaded: loaded (/usr/lib/systemd/system/rpcbind.service; enabled; vendor preset: enabled)Active: active (running) since 五 2024-11-15 10:50:35 CST; 2s agoProcess: 1904 ExecStart=/sbin/rpcbind -w $RPCBIND_ARGS (code=exited, status=0/SUCCESS)Main PID: 1905 (rpcbind)CGroup: /system.slice/rpcbind.service└─1905 /sbin/rpcbind -w11月 15 10:50:35 web-test-207 systemd[1]: Starting RPC bind service...
11月 15 10:50:35 web-test-207 systemd[1]: Started RPC bind service.
[root@web-test-207 ~]# 

2.3.远程查看共享文件信息

[root@web-test-207 ~]#  showmount -e 172.16.1.231
Export list for 172.16.1.231:
/nfs-web-share 172.16.1.0/24

2.4.进行挂载测试

[root@web-test-207 ~]# mount -t  nfs 172.16.1.231:/nfs-web-share/ /mnt
[root@web-test-207 ~]# mount -l |grep mnt
172.16.1.231:/nfs-web-share on /mnt type nfs4 (rw,relatime,vers=4.1,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=172.16.1.207,local_lock=none,addr=172.16.1.231)
[root@web-test-207 ~]# 

2.5.进入共享文件夹,读写操作

[root@web-test-207 ~]# cd /mnt
[root@web-test-207 mnt]# ll
总用量 4
-rw-r--r-- 1 nfsnobody nfsnobody 51 11月 15 10:56 index.html
[root@web-test-207 mnt]# cat index.html 
<meta charset=utf8> 这是一个网页
[root@web-test-207 mnt]# echo 'hello world' >> index.html 
[root@web-test-207 mnt]# cat index.html 
<meta charset=utf8> 这是一个网页
hello world
[root@web-test-207 mnt]# 

切换到nfs-test-231机器查看目录和文件

[root@nfs-test-231 ~]# cd /nfs-web-share/
[root@nfs-test-231 nfs-web-share]# ll
总用量 4
-rw-r--r-- 1 nfsnobody nfsnobody 51 11月 15 10:56 index.html
[root@nfs-test-231 nfs-web-share]# cat index.html 
<meta charset=utf8> 这是一个网页
hello world

3.在web-test-205部署nginx网站服务

3.1.安装nginx软件

[root@web-test-207 ~]# yum install -y nginx

3.2.查看nginx网页目录的默认文件

[root@web-test-207 ~]# ls /usr/share/nginx/html/
404.html  50x.html  index.html  nginx-logo.png  poweredby.png

3.3.挂载nfs共享文件夹到nginx的网页目录,让nginx可以读取到nfs的共享数据

执行mount挂载后,文件夹的内容会被隐藏,显示nfs共享的数据。

[root@web-test-207 ~]# mount -t nfs 172.16.1.231:/nfs-web-share /usr/share/nginx/html/
[root@web-test-207 ~]# mount -l | grep nfs
172.16.1.231:/nfs-web-share on /usr/share/nginx/html type nfs4 (rw,relatime,vers=4.1,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=172.16.1.207,local_lock=none,addr=172.16.1.231)[root@web-test-207 ~]# ls /usr/share/nginx/html/
index.html

3.4.启动nginx,查看网页

[root@web-test-207 ~]# systemctl start nginx

3.5.查看nginx端口,进程

[root@web-test-207 ~]#  ps -ef|grep nginx
root      2485     1  0 12:12 ?        00:00:00 nginx: master process /usr/sbin/nginx
nginx     2486  2485  0 12:12 ?        00:00:00 nginx: worker process
nginx     2487  2485  0 12:12 ?        00:00:00 nginx: worker process
root      2572  1692  0 12:29 pts/0    00:00:00 grep --color=auto nginx
[root@web-test-207 ~]# netstat -tnlp|grep nginx
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      2485/nginx: master  
tcp6       0      0 :::80                   :::*                    LISTEN      2485/nginx: master  

3.6.用浏览器访问该机器的ip:80端口


4.更新网页内容

我们客户端的nginx页面,是来自于nfs服务端的

4.1.修改nfs服务端文件

[root@nfs-test-231 ~]# echo '<h1>其实我来自nfs服务端</h1>' >> /nfs-web-share/index.html 
[root@nfs-test-231 ~]# cat /nfs-web-share/index.html 
<meta charset=utf8> 这是一个网页
hello world
<h1>其实我来自nfs服务端</h1>
[root@nfs-test-231 ~]# 

4.2.再次访问客户端的nginx网页

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/833985.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

第 5 篇 Scrum 冲刺博客

团队作业4——第 5 篇 Scrum 冲刺博客 作业要求这个作业属于哪个课程 https://edu.cnblogs.com/campus/gdgy/CSGrade22-34这个作业要求在哪里 https://edu.cnblogs.com/campus/gdgy/CSGrade22-34/homework/13234这个作业的目标 团队集体协作完成项目开发队名 雄狮般的男人站立式…

Sitecore debug 工具

由于 Sitecore 的调试需要老是通过 log 来分析,而每次更新 dll 都需要等待一定的时间和重复执行前端的操作逻辑,特开发一个在线编辑器的方式来方便调试。警告:请勿在生产环境使用。截图构建项目 打开 Frontend,使用 pnpm i 安装依赖包,然后 pnpm build:vite 构建项目,之后…

如何禁止 SQL Server 中的 xp_cmdshell 以提高安全性

概述 在 SQL Server 中,xp_cmdshell 是一个强大的功能,它允许执行操作系统级别的命令。然而,这也带来了潜在的安全风险。本文将详细介绍如何禁止 xp_cmdshell,以增强 SQL Server 的安全性。 禁止 xp_cmdshell 的步骤 步骤 1:检查 xp_cmdshell 的当前状态 在开始禁止 xp_cm…

“亦”真“亦”假?——MXsteerWheel与DYNA4的强强联手

高性能力反馈方向盘MXsteerWheel作为线控转向开发的新帮手,在北汇信息的展台上一直是大家关注的焦点。由于它简练出众的外表与真实阻尼的手感,吸引参展的朋友都乐此不疲地进行尝试。而后又不禁感叹,亦真亦假!图1 桌面式驾驶模拟器 一、系统组成整体来看,驾驶模拟器由CANo…

c++_primer之第四章

4.1 节练习 练习 4.1 在算术运算符中,乘法和除法的优先级相同,且均高于加减法的优先级。因此 上式的计算结果应该是 105,在编程环境中很容易验证这一点。 练习 4.2 在本题涉及的运算符中,优先级最高的是成员选择运算符和函数调用运算符, 其次是解引用运算符,最后是加法运…

Docker Kubernetes

Docker镜像与容器 Docker 中有两个重要概念。 一个是容器(Container):容器特别像一个虚拟机,容器中运行着一个完整的操作系统。可以在容器中装 Nodejs,可以执行npm install,可以做一切你当前操作系统能做的事情 另一个是镜像(Image):镜像是一个文件,它是用来创建容器…

thinkphp升级后报错Declaration of think\app\Url::build() must be compatible with think\route\Url::build():

​ 将源码中的thinkphp升级后,发现了错误:Declaration of think\app\Url::build() must be compatible with think\route\Url::build(): string 出现这个错误的原因是,你通过命令“composer update topthink/framework”只升级了框架,没有更新多应用扩展模块。 只需要compo…

为什么 PHP 在 2024 年会越来越受欢迎:经典语言的意外回归

2024 年,PHP 出人意料地卷土重来,这得益于重大的性能改进、现代功能和蓬勃发展的生态系统。 在 Laravel 等框架的引领和广泛的托管支持下,PHP 已成为强大、快速且可靠的 Web 开发选择,这些证明它远未过时。 二十多年来,PHP 一直是 Web 开发的基石,为数百万个网站和 Web 应…

linux终端美化 oh-my-bash安装

之前一直在用zsh终端,然后安装oh-my-zsh,配置后感觉特别清爽,于是想bash终端下是否存在类似的软件,找了下发现了oh-my-bash。特记录下安装使用过程 oh my bash官网:https://ohmybash.nntoan.com/ oh my bash github:https://github.com/ohmybash/oh-my-bash系统终端SHELL…

MATLAB R2023b for Mac(专业的编程和数学计算软件)v23.2.0.2428915激活版

MATLAB R2023b是MathWorks公司推出的一款专业的数值计算和数据可视化软件,它是MATLAB软件系列的最新版本。该软件在科学、工程和金融等领域的数据分析和模拟方面表现出色,具有强大的功能和工具。MATLAB R2023b引入了更强大的并行计算功能,提高了工作效率,使得用户可以更快地…

好用的视频照片格式转换软件Permute 3你用了吗?

Permute 3是一款功能强大的媒体文件格式转换软件,它以其简洁高效的界面和丰富的功能赢得了用户的青睐。该软件支持视频、音频、图片等多种文件格式的转换,包括但不限于MP4、AVI、MOV、MKV等视频格式,以及MP3、WAV、AAC等音频格式,还有JPEG、PNG等图片格式。用户只需将文件拖…

空壳分身产品之路:直面自身的缺点

这大概是极少见的官方展现自身产品缺陷的文章,旨在帮助用户从多个维度快速判断该产品是否符合个人需求,以避免浪费时间和精力在不必要的下载、安装和使用上。这大概是极少见的官方展现自身产品缺陷的文章,从产品体验,功能设计,技术方案和未来规划的角度,阐述空壳产品的做…