fastdfs分布式架构 -- nginx扩展模块使用

1 http下载架构

2  fastdfs分布式架构设计安装

安装详解:http://blog.csdn.net/clevercode/article/details/52267080。

3 FastDFS扩展模块

3.1 原理解析:http://blog.csdn.net/clevercode/article/details/52276077。

3.2 FastDFS扩展模块要点:

1 使用扩展模块来解决文件同步延迟问题

2 在每台storage server上部署web server,直接对外提供HTTP服务

3 tracker server上不需要部署web server,开启http服务。

4 如果请求文件在当前storage上不存在,通过文件ID反解出源storage,直接请求源storage

5 目前已提供apache和nginx扩展模块 FastDFS扩展模块不依赖于FastDFS server,可以独立存在!

3.3 模块工作机制:

1 对请求URL中的文件名进行反解,得到文件创建时间、文件大小和源storage server IP地址

2 如果文件在本地存在,直接返回文件内容;否则转3

3 文件在本地不存在的情况处理:

1)如果 (当前时间 - 文件创建时间) > 文件同步延迟阀值(如一天) 或者 源storage server IP地址在本机IP中(即当前文件上传到的源storage server为本机),则返回404 NOT FOUND

2)如果配置为redirect模式,直接重定向到源storage server IP对应的URL;否则为proxy模式,调用FastDFS client API从源storage server IP获取该文件并返回给客户端

4 nginx的fdfs扩展模块后,就使用nginx的负载均衡,向tracker server获取两个参数而已,这两个参数是:

storage_sync_file_max_delay:文件同步的最大延迟,缺省为1天

storage_sync_file_max_time:同步单个文件需要的最大时间,缺省为5分钟。

4 配置storage(192.168.101.132)上的nginx

4.1 配置nginx扩展(mod_fastdfs.conf)

# cp /usr/local/src/nginx/fastdfs-nginx-module/src/mod_fastdfs.conf  /etc/fdfs/

# vi /etc/fdfs/mod_fastdfs.conf

base_path=/data0/fastdfs

tracker_server=192.168.101.135:22122

group_name=group1

url_have_group_name = true

store_path0=/data0/fastdfs/storage/storage0

4.2 配置nginx.conf

# vi /usr/local/nginx/conf/nginx.conf

add_header srv-id 132;

server_name  img1.mydomain.com;

location /group1/M00 {

root /data0/fastdfs/storage/storage0/data;

ngx_fastdfs_module;

}

启动

# /usr/local/nginx/sbin/nginx

5 配置storage(192.168.101.133)上的nginx

5.1 配置nginx扩展(mod_fastdfs.conf)

# cp /usr/local/src/nginx/fastdfs-nginx-module/src/mod_fastdfs.conf  /etc/fdfs/

# vi /etc/fdfs/mod_fastdfs.conf

base_path=/data0/fastdfs

tracker_server=192.168.101.135:22122

group_name=group1

url_have_group_name = true

store_path0=/data0/fastdfs/storage/storage0

5.2 配置nginx.conf

# vi /usr/local/nginx/conf/nginx.conf

add_header srv-id 133;

server_name  img2.mydomain.com;

location /group1/M00 {

root /data0/fastdfs/storage/storage0/data;

ngx_fastdfs_module;

}

启动

# /usr/local/nginx/sbin/nginx

6 测试

配置host(C:\Windows\System32\drivers\etc\hosts)

192.168.101.132 img1.mydomain.com

192.168.101.133 img2.mydomain.com

6.1 132与133都开启storage

a)上传w8.png。可以看到被轮询上传到了192.168.101.132storage中。

# /usr/local/bin/fdfs_test /etc/fdfs/client.conf upload w8.png

b)访问img1.mydomain.com,本地命中图片。

http://img1.mydomain.com/group1/M00/00/00/wKhlhFe7DCeAcOvYAAaxqYLWRQk392.png

c)访问img2.mydomain.com,本地命中图片。

http://img2.mydomain.com/group1/M00/00/00/wKhlhFe7DCeAcOvYAAaxqYLWRQk392.png

6.2 停止132storage,只开启133storage

a)停止192.168.101.132storage

# /usr/local/bin/stop.sh /usr/local/bin/fdfs_storaged /etc/fdfs/storage.conf

b)上传w9.png图片。图片只能被存储到192.168.101.133的storage中

# /usr/local/bin/fdfs_test /etc/fdfs/client.conf upload w9.png

c)访问img2.mydomain.com,本地命中图片。

http://img2.mydomain.com/group1/M00/00/00/wKhlhVe7DuSALxjTAAKHqXsWj4A287.png

d)访问img1.mydomain.com,本地132没有,解析源ip到133服务器去取。

http://img1.mydomain.com/group1/M00/00/00/wKhlhVe7DuSALxjTAAKHqXsWj4A287.png

时间: 2024-09-29 16:07:02

fastdfs分布式架构 -- nginx扩展模块使用的相关文章

fastdfs分布式架构设计

CleverCode在自己的虚拟机中准备搭建一下分布式架构. 1 架构图 2 安装与配置tracker(192.168.101.135:22122) 2.1 安装tracker 安装详解参考:http://blog.csdn.net/clevercode/article/details/52244358. 2.2 配置tracker a) 首次安装 #  vi /etc/fdfs/tracker.conf base_path=/data0/fastdfs/tracker # /usr/local

FastDFS分布式文件系统&Nginx负载均衡最小环境安装配置[超级详解]

1.背景 FastDFS 是一款开源的.分布式文件系统(Distributed File System),由淘宝开发平台部资深架构师余庆开发.该开源项目的主页是 http://code.google.com/p/fastdfs .可以通过 fastdfs.sourceforge.net 下载.FastDFS论坛是 http://www.csource.org ,目前是指向 ChinaUnix 开源项目孵化平台的一个板块 FastDFS,网址为 bbs.chinaunix.net/forum-24

FastDFS(分布式存储系统)+nginx web 服务器

先来一波介绍: 指纹是指系统给每一个文件指定的唯一的id,使文件能唯一指定. 如果不同用户存储的文件有相同的部分,则直接将之前用户相同部分拿来调用,省去了重复上传和下载的工作. tracker-server与storage-server都是可以分小组进行工作的,这样有利于不同的操作同时进行,同时存储容量扩张的话只需要增加小组数量,比较方便. 文件上传流程: 文件下载流程: 与nginx配合使用:(nginx适用于访问量大的情况) nginx要与FastDFS配合使用,需要安装上图中的2(一个包)

高可用高性能分布式文件系统FastDFS进阶keepalived+nginx对多tracker进行高

在上一篇 分布式文件系统FastDFS如何做到高可用 中已经介绍了FastDFS的原理和怎么搭建一个简单的高可用的分布式文件系统及怎么访问. 高可用是实现了,但由于我们只设置了一个group,如果现在有5台服务器那将会出现5台只有一个group,每台服务器内的文件内容都相同(互备份)如下图,会造成资源浪费. 因此下面就5台服务器进行优化改造,进一步添加keepalived+nginx多tracker 架构,做到真正的高可用和高性能. FastDFS集群服务器分布 其中keepalived+ngi

了解分布式架构 Maven Springmvc mybatis shiro Druid Restful,Dubbo ZooKeeper,Redis,FastDFS ,ActiveMQ

声明:该框架面向企业,是大型互联网分布式企业架构,后期会介绍linux上部署高可用集群项目. 有愿意了解框架技术或者源码的朋友直接加Q(2137028325)一起学习 介绍 1.      项目核心代码结构截图 <modules>        <!-- jeesz 工具jar -->        <module>jeesz-utils</module>        <!-- jeesz 公共配置jar -->        <modu

windows+nginx+iis+redis+Task.MainForm构建分布式架构 之 (nginx+iis构建服务集群)

本次要分享的是利用windows+nginx+iis+redis+Task.MainForm组建分布式架构,由标题就能看出此内容不是一篇分享文章能说完的,所以我打算分几篇分享文章来讲解,一步一步实现分布式架构:下面将先给出整个架构的核心节点简介,希望各位多多点赞: . 架构设计图展示 . nginx+iis构建服务集群 . redis存储分布式共享的session及共享session运作流程 . redis主从配置及Sentinel管理多个Redis集群 . 定时框架Task.MainForm提

JEESZ 分布式架构--dubbo+zookeeper+springmvc+mybatis+shiro+redis

平台简介 Jeesz是一个分布式的框架,提供项目模块化.服务化.热插拔的思想,高度封装安全性的Java EE快速开发平台. Jeesz本身集成Dubbo服务管控.Zookeeper注册中心.Redis分布式缓存技术.FastDFS分布式文件系统.ActiveMQ异步消息中间件.Nginx负载均衡等分布式技术 使用Maven做项目管理,项目模块化,提高项目的易开发性.扩展性 以spring Framework为核心容器,Spring MVC为模型视图控制器,MyBatis为数据访问层, Apach

j2ee分布式架构 dubbo + springmvc + mybatis + ehcache + redis 分布式架构

介绍 <modules>        <!-- jeesz 工具jar -->        <module>jeesz-utils</module>        <!-- jeesz 公共配置jar -->        <module>jeesz-config</module>        <!-- jeesz 核心框架jar -->        <module>jeesz-framew

jeesz分布式企业框架 javaWeb分布式架构 springmvc+mybatis+shiro dubbo zookeeper redis kafka app服务

平台简介 Jeesz是一个分布式的框架,提供项目模块化.服务化.热插拔的思想,高度封装安全性的Java EE快速开发平台. Jeesz本身集成Dubbo服务管控.Zookeeper注册中心.Redis分布式缓存技术.FastDFS分布式文件系统.ActiveMQ异步消息中间件.Nginx负载均衡等分布式技术 使用Maven做项目管理,项目模块化,提高项目的易开发性.扩展性 以spring Framework为核心容器,Spring MVC为模型视图控制器,MyBatis为数据访问层, Apach