分布式网络云盘项目

一、项目介绍

先附上项目Github地址https://github.com/82457097/CloudDisk
这是我在网上找到的一个项目,觉得不错就模仿着做了一下~
分布式网络云盘,其中分布式是指的分布式存储系统FastDFS,也是一个开源项目,没有做很深的研究,大概了解了一下,可以看我的这篇博客介绍fastDFS分布式文件系统介绍和安装;然后在利用ngnix反向代理服务器,接收并处理用户的请求,其中还使用了FastCGI+spawn-fcgi配合nginx工作;
然后呢还用到了MySQL和Redis数据库,其中MySQL用于存储文件的信息,Redis呢主要用于存储用户注册登录之类的鉴权信息,这一块我还没有实现~目前呢只实现了一些基本的文件上传下载等功能。

二、项目架构

项目架构的话先看一张我扒来的图吧~不是很清楚。
在这里插入图片描述
图上的内容就是该项目的组网架构,主要工作流程是用户通过浏览器(或者客户端)发送操作请求到web服务器,也就是由nginx反向代理的web服务器。然后fastCGI+spawn-fcgi模块创建进程来接收通过web服务器而来的用户请求,并交由fastDFS文件系统处理,并返回处理后的结果给web服务器,web服务器再将结果展示给用户。

三、项目准备

该项目需要一个Linux服务器,推荐阿里云,环境搞坏了可以直接重装系统,分分钟就好了,很节约时间,哈哈~
我这里只列一下需要安装哪些组件,后面我会把整理好的安装包全部传到GitHub里面~

四、环境搭建

环境搭建这一块,我之前的文章已经总结好了,按顺序一个一个装就行了~

五、环境测试

搭建好环境之后,就可以测试一下环境是否没有问题了。

  • 我们要更改一下nginx配置文件测试fastcgi模块
  • $ cd /usr/local/nginx/conf/
  • $ vim nginx.conf
  • 加一个测试location
location /test {
    fastcgi_pass 127.0.0.1:7890; 	//记住这个端口号7890
    include fastcgi.conf;
}
  • 然后编译src中的test.c $ gcc test.c -o test.cgi -lfcgi
  • 然后用spawn-fcgi开启test.cgi $ spawn -a 127.0.0.1 -p 7890 -f ./test.cgi
  • 然后打开网页的测试一下 在浏览器输入你的服务器IP/test就行,看看web服务器是否会返回消息~
    在这里插入图片描述
  • 然后再测试fastdfs-nginx-module模块参照这个链接测试就行

六、文件上传流程

fastDFS系统文件的上传下载原理看这篇文章fastDFS分布式文件系统文件上传和下载流程
下面这张图是上传文件的代码流程~
在这里插入图片描述

七、文件上传测试

在这里插入图片描述

八、项目总结

发布了33 篇原创文章 · 获赞 14 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_44816732/article/details/104346199