上一篇文章讲了FastDFS文件系统中storage节点与nginx整合,以便能通过浏览器访问。FastDFS文件系统与nginx结合的很紧密。这一片文章将Tracker节点与nginx整合。
Tracker节点为什么要与nginx整合
我们知道当上传文件成功的时候,FastDFS会给我们返回文件的路径值。就像这样:
group1/M00/00/00/wKgfeVkkvkyAYX74AADhwcVqWow029.jpg
可是我们要访问文件,还要在路径的前边拼装url,包括storage节点的ip地址和端口号。可是在生产环境下,FastDFS都是集群部署,会有若干个storage节点,相应的也就会有多个ip地址:端口号。那我们在拼装url的时候,到底使用哪个storage节点呢?
这个时候我们就可以在tracker节点加上nginx,来做反向代理和负载均衡。由于FastDFS存储的都是小文件,所以我们我们还可以加上nginx的缓存模块,来提高性能。-
Tracker节点与nginx的整合步骤
(前提:Tracker节点已经配置完成)
1.安装nginx的准备工作:去翻以前的文章吧,那里面说的很详细。
2.所需要的文件:
3.解压,编译,安装:去翻以前的文章吧,那里面说的很详细。
在编译安装之前配置nginx的缓存模块:
./configure --add-module=/usr/local/fast/ngx_cache_purge-2.3/
4.修改nginx.conf配置文件,也是最重要的一步:
生产环境下upstream fdfs_group还会有多个,例如upstream fdfs_group2,upstream fdfs_group3。每一个upstream fdfs_group里面的server也会有多个。
同理,生产环境下,location也会有多个。
至此,nginx安装完毕,启动nginx,拼装Tracker节点的ip地址:端口号+文件的路径
就像这样: http://192.168.31.113/group1/M00/00/00/wKgfeVkkvkyAYX74AADhwcVqWow029.jpg
就可以访问到文件了。 Tracker节点也有多个怎么办呢?
生产环境,不仅仅storage节点是集群部署的,tracker节点也是集群部署的。这个时候我们虽然拼装url的时候,使用任意一个Tracker节点的ip地址:端口号可以,但是总需要有一个统一的接口供我们去使用。
这是时候我们就可以在Tracker节点上在加一层负载均衡或者直接使用keepalived构建高可用系统,虚拟出一个统一的vip供我们去使用。
最后,我没有以集群的形式去展示的原因:生产环境下是有很多个服务器的,一套完整的FastDFS的集群部署至少需要6-7台服务器,这就意味着我要在一台电脑上运行6-7个虚拟机实例,电脑资源的压力可想而知。