开发者学堂课程【Spring Boot+Vue.js+FastDFS实现分布式图片服务器 :案例开发-搭建 fastDSF 加 Nginx 文件服务器】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/742/detail/13145
案例开发-搭建 fastDSF 加 Nginx 文件服务器
搭建 fastDFS 文件服务器
在整个需求流程中,最终用户需要通过 Nginx 代理,从 storage server 下载文件,查看图片。
首先要先集成 fastDFS 和 Nginx 来实现通过 Nginx 可以浏览到 fastDFS 上面的文件。(从后向前)
搭建 fastDFS 文件服务器
1. 安装 fastDFS tracker 和 storage(已安装完毕)
2. 在 storage server 上安装 nginx
在安装文档上面已经写明安装步骤。
在 storage server 上安装 nginx 的作用是?
(1)用客户端请求 Tracker,Tracker 把 storage 服务的 ip 给了客户端,客户端就可以请求 storager,而现在安装了 Nginx,用户可以直接使用 Nginx,最终访问 storager,但会通过负载均衡代理后,即需求中先访问图片服务代理,再访问 fastDFS 文件系统。
(2)以前是通过 storager 访问最终的文件系统,而现在用户通过 Nginx,再通过 http 可以直接访问 fastDFS 文件系统。
所以作用是:在 storage server 上安装 nginx 的目的是对外通过 http 访问 storage server上的文件。
(3)在 storage server 上集成 nginx 用到了模块 FastDFS-nginx-module,它的作用是?
用户将图片上传到 storager1-1,通过 http,Nginx 请求到该组的 storager 后,但没有请求到 Storager1-2 中的文件,在文件没有同步过去的情况下,Storager1-2 上面的 Nginx 模块的作用就是发现本机中的 storage 里面文件不存在的情况下,会去查原来文件所在的 storage,如果可以找到就会将请求定向到该 storage 中去。
Nginx 模块是通过 tracker 得知原文件上传到哪一个 storage 中去的。因为 tracker 中有很多文件,他知道哪一个文件在哪里。所以 FastDFS-nginx-module 模块很重要!!
作用1:通过 http 方式访问 storage 中的文件
作用2:当 storage 本机没有要找的文件时向源 storage 主机代理请求文件。
安装之后可以启动 Nginx,cat Nginx-fdfs.conf 使用该文件进行启动。
在 storage 服务器可能有 M00 驱动器也可能有 M02 驱动器,所以需要配置虚拟的目录,在配置虚拟目录的时候用到了 ngx_fastdfs_module 模块。配置好后重新启动 Nginx。
刚刚已经上传了该文件,接下来就可以通过 Nginx 访问。
在页面中输入:
http://192.168.10.64/group1/M00/00/02/wKhIQFrKX0mATW LAALcAg10vf4198.png
回车即可成功通过http的方式访问图片。当 storage 服务器上面集成了 nginx,就可以通过 http 的方式进行访问。这就是集成了 Nginx。
3. 在安装图片服务代理
用户先请求的就是图片的代理,图片代理的作用就是负载均衡,他的下面连接了很多的 storage,用户先请求图片代理,由代理服务,把图片请求转发到 storage 上。
在这里已经有了一个 storage,如果将来还需要另外的一个 storage 只需要再次配置即可,起到负载均衡的作用。非常方便。
这是配置了一个图片服务的 Nginx 的图片服务的代理。所有的访问/ group1 的路径都通过负载均衡转发到上面的服务器上。以上代理则配置完毕。
所以说刚刚的访问地址由 group1开头,就开始从服务器上面找均衡负载进行转发,转发请求到不同的服务器,而不同的服务器又有配置 storage。
以上则能够成功实现通过 http 访问 storage 的功能。