基于NFS+SpringBoot+docker+Nginx的文件上传下载功能实现
基于NFS+SpringBoot+docker+Nginx+Rancher的文件上传下载功能实现1.首先认定一台机器作为你的文件服务器进行共享目录配置2.将共享目录挂载到你的服务器上作为上传使用3.将共享目录挂载到nginx所处的服务器下并配置4. 配置宿主主机持久卷到你的服务器集群中新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个
·
基于NFS+SpringBoot+docker+Nginx+Rancher的文件上传下载功能实现
Centos7.5部署NFS网络存储
NFS应用场景
NFS(Network File System网络文件系统),有些类似有C/S的方式,场景中最少包含两台服务器。应用场景中通常是存储。例如我们有一个集群环境假定为Tomcat集群环境。环境中出现一个用户上传附件的需求,如果每一个Tomcat都将附件存储到自身不仅占用了大部分磁盘空间,且为保证文件一致性需要使用类似于Rsync+notify机制推送文件,较为麻烦。此时我们就可以单独拿出一个Server将他的磁盘空间共享出来供后端Tomcat服务调用。这种方法大大减小了Tomcat Server的磁盘压力及CPU压力更减小了磁盘的损耗
这时候有的同学可能会问了,NFS没有缺点吗?结果是当然有了,NFS中N代表Network,就代表了这时一个依赖网络的文件存储,且NFS文件传输过程中是不加密的。建议大家在生产环境中尽量在内网环境下使用。这样既可以减小公网压力,又提高了文件传输的安全性。内网使用通过nginx配置静态资源目录转发出去,就可以避开内网达到访问的目的。
1.首先认定一台机器作为你的文件服务器进行共享目录配置
nfs 服务器部署命令
首先在服务器上安装必要的工具
yum search nfs
yum search rpcbind
yum install nfs-utils.x86_64 //使用yum安装nfs 和rpcbind 当然看你需要安装哪个版本
rpm -qa rpcbind nfs-utils //安装完后查看效果
cat /etc/passwd | grep nfs //安装完成后会产生两个系统用户
创建共享目录并暴露到外部
mkdir -p /yourNfsDir //创建你要共享的目录
vim /etc/exports //编辑nfs 配置文件
/yourNfsDir 172.16.201.*/24 (rw,sync,no_root_squash)
↑ ↑ ↑
你的目录 可以挂载这个文件夹的网段 权限相关
systemctl stop firewalld //关闭防火墙
systemctl disable firewalld //禁用防火墙
systemctl restart rpcbind // 先重启这个
systemctl restart nfs //后重启这个
systemctl enable rpcbind
systemctl enable nfs
systemctl status rpcbind
systemctl status nfs
showmount -e localhost //查看本地可共享文件夹
如果出现
Export list for localhost:
/yourNfsDir (everyone)
说明服务已经开启成功了 接下来在你需要使用共享文件夹的服务器去挂载就行了
2.将共享目录挂载到你的服务器上作为上传使用
#挂载命令
cd ~
mkdir -p /yourNfsDir
mount -t nfs 文件服务器ip:/yourNfsDir /yourNfsDir
mount | grep /yourNfsDir
#开机自启动挂载
vi /etc/fstab
文件服务器ip/24:/yourNfsDir /yourNfsDir nfs rw,noac,suid,dev,exec,auto,nouser,async 0 0
#取消挂载
umount /Users/xuetao
umount -vl /Users/xuetao #执行延迟卸载
lsof | grep mymount #查找mymount分区里打开的文件
3.将共享目录挂载到nginx所处的服务器下并配置
进入你nginx所在的服务器
如2挂载共享目录 (此处略过)注意nginx所在服务器在 ~下新建目录为 /home/uploadFiles
然后配置路径给外部访问
cd /etc/nginx/conf.d
vim 你的nginx配置文件
location ^~ /uploadFiles{
root /home;
autoindex on;
}
这个时候访问你配置的路径就可以看到文件和目录了
4.SpringBoot中的上传
详情请参考 这里不再赘述Spring Boot实现文件上传与下载
5. 配置宿主主机持久卷到你的服务器集群中
进入docker镜像内部
docker run -v /yourNfsDir:这里写你镜像里面的上传文件的路径
挂载成功后上传文件验证即可
/
更多推荐
已为社区贡献1条内容
所有评论(0)