六、文件上传流程
1 时序图
2 流程说明
- 客户端访问Tracker
- Tracker 返回Storage的ip和端口
- 客户端直接访问Storage,把文件内容和元数据发送过去。
- Storage返回文件存储id。包含了组名和文件名
七、Fastdfs-java-client
1 添加依赖
2 编写配置文件
文件名:fdfs_client.conf
修改成自己的tracker服务器ip
3 导入工具类
在com.utils.FastDFSClient 下粘贴配置工具类
4 编写测试代码
随意新建一个包含主方法的类。com.msb.MyMain
八、文件下载
1 时序图
2 下载说明
-
client询问tracker下载文件的storage,参数为文件标识(组名和文件名);
-
tracker返回一台可用的storage;
-
client直接和storage通讯完成文件下载。
3 代码实现
直接使用工具方法完成下载。
九、Nginx简介
1 简介
FastDFS是没有文件访问功能的,需要借助其他工具实现图片HTTP访问的。Nginx就具备代理虚拟机主机功能。
Nginx (engine x) 是一个高性能的HTTP和反向代理服务。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,第一个公开版本0.1.0发布于2004年10月4日。
Nginx 是一个很强大的高性能Web和反向代理服务,它具有很多非常优越的特性:在连接高并发的情况下,Nginx是Apache服务不错的替代品:Nginx在美国是做虚拟主机生意的老板们经常选择的软件平台之一。
2 代理方式
2.1 正向代理
正向代理,意思是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。客户端才能使用正向代理。
2.2 反向代理
反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。
2.3 二者之间的区别
位置不同 正向代理,架设在客户机和目标主机之间; 反向代理,架设在服务器端;
代理对象不同 正向代理,代理客户端,服务端不知道实际发起请求的客户端; 反向代理,代理服务端,客户端不知道实际提供服务的服务端;
3 Nginx作用
3.1 HTTP协议代理
只要支持HTTP协议访问的内容,都可以由Nginx进行代理。Nginx只支持HTTP协议的代理,其他协议不支持。
3.2 搭建虚拟主机
Nginx可以监听所安装的主机的某个端口,对外支持这个端口的HTTP访问。当接收到外部HTTP请求后把本机中资源返回给客户端。今天的课程内容就是使用Nginx的搭建虚拟主机功能,外部请求图片时,把图片信息响应给请求发。
3.3 负载均衡
Nginx可以代理多个主机,内置负载均衡策略。
十、Nginx安装
1.上传并安装fastdfs-nginx-module
上传 /fastdfs-nginx-model_v1.16.tar.gz 到 /usr/local/tmp 中
进入 tmp 目录
解压
2.修改配置文件
进入解压目录中src目录
编辑config文件
修改配置文件中第四行,把路径中local去掉。参数是用于配置安装nginx中的FastDFS组件的时候,在什么位置查找FastDFS核心代码。
修改结果如下:
3.安装nginx的依赖
4.上传Nginx 并解压
上传nginx-1.16.1.tar.gz 到/usr/local/tmp中
5.修改Nginx配置
5.1 进入到Nginx文件夹
5.2 创建临时目录
修改配置文件中好多位置都使用了/var/temp/nginx目录,但是默认不会自动创建这个目录,需要手动创建。
5.3 修改配置文件参数
--add-module 必须定义,此配置信息是用于指定安装Nginx时需要加载的模块,如果未指定,Nginx安装过程不会加载fastdfs-nginx-module模块,后续功能无法实现。
6.编译并安装
7 配置fastdfs-nginx-module模块配置文件
复制配置文件fastdfs-nginx-module/src/mod_fastdfs.conf 到 /etc/fdfs目录中
8 修改 mod_fastdfs.conf
8.1进入到 /etc/fdfs
8.2 编辑配置文件
8.3 文件内容修改
需要修改文件中四处内容, 这四处内容的含义:
connect_timeout=2 #连接超时时间,单位秒
tracker_server=tracker:22122 #tracker 服务结点
url_have_group_name=false #URL是否包含group名称
store_path0=/home/yuqing/fastdfs #storage服务结点的存储位置,与配置storage结点一致
9. 提供FastDFS需要的HTTP配置文件
复制FastDFS安装包中的两个配置文件(http.conf 和 mime.types) 到 /etc/fdfs目录中
10. 创建网络访问存储服务的软连接
在上传文件到FastDFS后,FastDFS会返回group1/M00/00/00/xxxxxxxxx.xxx其中group1是卷名,在mod_fastdfs.conf配置文件中已配置了url_have_group_name, 以保证URL解析正确。其中的M00是FastDFS保存数据时使用的虚拟目录, 需要将这个虚拟目录定位到真实数据目录上。
11. 修改nginx配置文件
11.1进入到安装后 nginx目录
注意是安装目录,不是解压目录
11.2 编辑配置文件
11.2.1 修改内容
需要修改两处
11.2.1.1第一处
user root; #Nginx需要访问linux文件系统,必须有文件系统的权限。User root代表nginx文件系统的权限是root用户权限。如果不开启权限,可能有404反问错误。
默认效果:此内容在文件最上面
修改后的效果:去掉注释,user后面写上root
11.2.1.2第二处
默认效果:
修改后的效果:
12. 启动nginx
进入到nginx安装目录的sbin文件夹
启动nginx
关闭nginx