fastdfs+nginx集群搭建的实现_nginx

来源:脚本之家  责任编辑:小易  

FastDFS通过Tracker服务器,将文件2113放在5261Storage服务器存储,但是4102同组之间的服务器需要复制文件,有延迟的问题.假设Tracker服务器将文1653件上传到了192.168.1.80,文件ID已经返回客户端,这时,后台会将这个文件复制到192.168.1.30,如果复制没有完成,客户端就用这个ID在192.168.1.30取文件,肯定会出现错误 这个fastdfs-nginx-module可以重定向连接到源服务器取文件,避免客户端由于复制延迟的问题,出现错误,但是似乎2113 nginx 扩展模块 只能获取 当前nginx 所在group 的文件,不能5261跨group?例如 有 group1 和 gruop2,其中各包含一4102台机器。当nginx部署到group2后, mod 只能1653访问 group2里面的文件,不能访问group1中的?,一直不明2113白 mod 更新里面的5261Version 1.15 2013-01-13 * add storage server port config with multi groups * support flv, you must upgrade your FastDFS server to v4.06 or higher versionVersion 1.14 2012-12-29 * bug fixed: do not check store path index when not same group you must upgrade your FastDFS server to v4.05 or higher version * proxy handler deal headers more gracefully * set last modified time correctly * support multi groups支持多组是什4102么,也没1653个文档,建议LZ先看看PPT,对FastDFS有个总体了解吧,回复21133#hadixlinhttp://bbs.chinaunix.net/thread-1958475-1-1.html9楼也5261个较新4102的1653www.zgxue.com防采集请勿采集本网。

一.简介fastdfs

在原生的nginx,他不可以动态加载模块,所以当你安装第三方模块的时候需要覆盖nginx文件.nginx第三方模块安装方法如下: ./configure --prefix=/你的安装目录 --add-module=/第三方模块目录以安装pagespeed模块实例 在未安装nginx的情况下安装ngin

1.什么是fastdfs fastdfs是一个轻量级的开源分布式文件系统; fastdfs主要解决了大容量的文件存储和高并发访问的问题,文件存取时实现了负载均衡; fastdfs实现了软件方式的RAID,可以使用廉价的IDE硬盘进行存储支持存储服务器在线扩容支持相同内容的文件只保存一份,节约磁盘空间; fastdfs只能通过Client API访问,不支持POSIX访问方式; fastdfs特别适合大中型网站使用,用来存储资源文件(如:图片、文档、音频、视频等等)。

你的nginx配置文件看看

2.fastdfs框架图

1.系统环境 最小化安装的 CentOS 6.2 tracker1: 192.168.68.113 tracker1: 192.168.68.116 storage1: 192.168.68.114 storage1: 192.168.68.115 2.环境准备[所有服务器都需要] 安装EPEL源 rpm -ivh epel-release-6-6.noarch.rpm 安装开发工具和

作者(YuQing)给出了框架图如下:

回复 1# nicole0169 应该是fastdfs扩展模块没有编译进nginx。请参照INSTALL文件说明。另外,你的nginx版本比较老,建议升级到最新的stable版本。

其中:

Tracker Server:跟踪服务器,主要做调度工作,在访问上起负载均衡的作用。记录storage server的状态,是连接Client和Storage server的枢纽。

回复 1# nicole0169 应该是fastdfs扩展模块没有编译进nginx。请参照INSTALL文件说明。另外,你的nginx版本比较老,建议升级到最新的stable版本。

Storage Server:存储服务器,文件和meta data都保存到存储服务器上

group:组,也可称为卷。同组内服务器上的文件是完全相同的文件标识:包括两部分:组名和文件名(包含路径)

meta data:文件相关属性,键值对(Key Value Pair)方式,如:width=1024,heigth=768

 3.上传文件流程

 (1)client询问tracker上传到的storage,不需要附加参数;

 (2)tracker返回一台可用的storage;

 (3)client直接和storage通讯完成文件上传。 

4.下载文件流程

(1)client询问tracker下载文件的storage,参数为文件标识(组名和文件名);

(2)tracker返回一台可用的storage;

(3)client直接和storage通讯完成文件下载。

5.同步机制

(1)同一组内的storage server之间是对等的,文件上传、删除等操作可以在任意一台storage server上进行;

(2)文件同步只在同组内的storage server之间进行,采用push方式,即源服务器同步给目标服务器;

(3)源头数据才需要同步,备份数据不需要再次同步,否则就构成环路了;

(4)上述第二条规则有个例外,就是新增加一台storage server时,由已有的一台storage server将已有的所有数据(包括源头数据和备份数据)同步给该新增服务器。

6.tracker server目录结构

(1)data

         storage_groups.dat:存储分组信息

         storage_servers.dat:存储服务器列表  

(2)logs

          trackerd.log:tracker server日志文件

7.storage server目录结构

1)data

         .data_init_flag:当前storage server初始化信息

         storage_stat.dat:当前storage server统计信息

         sync:存放数据同步相关文件

                 binlog.index:当前的binlog文件索引号

                 binlog.###:存放更新操作记录(日志)

                 ${ip_addr}_${port}.mark:存放同步的完成情况

(2)logs

              storaged.log:storage server日志文件

以上理论参考:

ChinaUnix论坛:http://bbs.chinaunix.net/forum-240-1.html

github下载地址:https://github.com/happyfish100

二、fastdfs安装和测试

1.下载

需要下载:libfastcommon     fastdfs(2.0之前的版本需要以来libevent)

2.安装

(1)安装libfastcommon

$ tar xzvf libfastcommon-1.0.38.tar.gz$ cd libfastcommon-1.0.38$ ./make.sh$ sudo ./make.sh install

(2)安装fastdfs

$ tar xzvf fastdfs-5.11.tar.gz$ cd fastdfs-5.11$ ./make.sh$ sudo ./make.sh install

3.配置

集群搭建拓扑图(由于硬盘不够了,下面192.168.31.4和192.168.31.14现在还没有,扩容后加上)

(1)配置tracker(192.168.31.95/192.168.31.99)

$cd /etc/fdfs/

目录文件如下:

然后,执行如下:

$sudo su#cp tracker.conf.sample tracker.conf

配置tracker.conf文件:

vim tracker.conf

修改:base_path=/home/fastdfs/tracker (注意:在启动前必须存在此目录,否则会报错,找不到路径,也就是说需要手动新建tracker目录)

启动:

/etc/init.d/fdfs_trackerd start

 

(2)配置storage(192.168.31.2/192.168.31.12)

$ cd /etc/fdfs$sudo su#cp storage.conf.sample storage.conf

修改:

group_name=group1(192.168.31.2) 或者group2(192.168.31.12)

base_path=/home/fastdfs/storage

store_path0=/home/fastdfs/storage

修改:tracker服务ip与port:

tracker_server=192.168.31.95:22122  (注意:这里31.2 tracker_server配置31.95 ,31.12 tracker_server配置31.99)

启动:

/etc/init.d/fdfs_storaged start

查看fastdfs的相应配置信息

# fdfs_monitor /etc/fdfs/storage.conf

 有以下信息才算成功:

测试上传, 选择192.168.31.99 tracker机器当做fdfs_client

$ cd /etc/fdfs$ sudo su# cp client.conf.sample client.conf# vim client.conf

修改:

base_path = /home/fastdfs

tracker_server=192.168.31.99:22122

测试上传net.png文件:

fdfs_upload_file /etc/fdfs/client.conf net.png

三、nginx配置

需要安装:

fastdfs-nginx-module-1.20  类似插件的东西

nginx-1.14.2.tar.gz

安装nginx需要先安装:

openssl       zlib     pcre

把astdfs-nginx-module插入到nginx(需要对nginx进行configure和make&&make install)

./configure --add-module=../../fastdfs-nginx-module/src/

 会报错:需要修改fastdfs-nginx-module-1.20/src/config文件

ngx_addon_name=ngx_http_fastdfs_moduleif test -n "${ngx_module_link}"; then ngx_module_type=HTTP ngx_module_name=$ngx_addon_name ngx_module_incs="/usr/local/include" ngx_module_libs="-lfastcommon -lfdfsclient" ngx_module_srcs="$ngx_addon_dir/ngx_http_fastdfs_module.c" ngx_module_deps= CFLAGS="$CFLAGS -D_FILE_OFFSET_BITS=64 -DFDFS_OUTPUT_CHUNK_SIZE='256*1024' -DFDFS_MOD_CONF_FILENAME='\"/etc/fdfs/mod_fastdfs.conf\"'" . auto/moduleelse HTTP_MODULES="$HTTP_MODULES ngx_http_fastdfs_module" NGX_ADDON_srcS="$NGX_ADDON_srcS $ngx_addon_dir/ngx_http_fastdfs_module.c" CORE_INCS="$CORE_INCS /usr/local/include" CORE_LIBS="$CORE_LIBS -lfastcommon -lfdfsclient" CFLAGS="$CFLAGS -D_FILE_OFFSET_BITS=64 -DFDFS_OUTPUT_CHUNK_SIZE='256*1024' -DFDFS_MOD_CONF_FILENAME='\"/etc/fdfs/mod_fastdfs.conf\"'"fi

修改为:

ngx_module_incs="/usr/include/fastdfs /usr/include/fastcommon/"

CORE_INCS="$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon/"

ngx_addon_name=ngx_http_fastdfs_moduleif test -n "${ngx_module_link}"; then ngx_module_type=HTTP ngx_module_name=$ngx_addon_name ngx_module_incs="/usr/include/fastdfs /usr/include/fastcommon/" ngx_module_libs="-lfastcommon -lfdfsclient" ngx_module_srcs="$ngx_addon_dir/ngx_http_fastdfs_module.c" ngx_module_deps= CFLAGS="$CFLAGS -D_FILE_OFFSET_BITS=64 -DFDFS_OUTPUT_CHUNK_SIZE='256*1024' -DFDFS_MOD_CONF_FILENAME='\"/etc/fdfs/mod_fastdfs.conf\"'" . auto/moduleelse HTTP_MODULES="$HTTP_MODULES ngx_http_fastdfs_module" NGX_ADDON_srcS="$NGX_ADDON_srcS $ngx_addon_dir/ngx_http_fastdfs_module.c" CORE_INCS="$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon/" CORE_LIBS="$CORE_LIBS -lfastcommon -lfdfsclient" CFLAGS="$CFLAGS -D_FILE_OFFSET_BITS=64 -DFDFS_OUTPUT_CHUNK_SIZE='256*1024' -DFDFS_MOD_CONF_FILENAME='\"/etc/fdfs/mod_fastdfs.conf\"'"fi

然后重新configure 和make && make install

接下来,cp mod_fastdfs.conf /etc/fdfs/ 并修改mod_fastdfs.conf文件

$ cd fastdfs-nginx-module-1.20/src$ cp mod_fastdfs.conf /etc/fdfs/

修改mod_fastdfs.conf

tracker_server=192.168.31.99:22122store_path0=/home/fastdfs/storagegroup_name=group1[group1]group_name=group1storage_server_port=23000store_path_count=1store_path0=/home/fastdfs/storage[group2]group_name=group2storage_server_port=23000store_path_count=1store_path0=/home/fastdfs/storage

 将fastdfs-5.11/conf/

$ cp http.conf /etc/fdfs/$ cp mime.types /etc/fdfs/

修改:http.conf

http.anti_steal.token_check_fail=/home/fastdfs/fastdfs-5.11/conf/

修改nginx.conf 

cd /usr/local/nginx/sbinvim ../conf/nginx.conf

 

 8888端口号与/etc/fdfs/storage.conf中的http.server_port=8888相对应

上传一张图片

http://192.168.31.12:8888/group1/M00/00/00/wKgfDFzxVTyAM4suABWWvfB6x_k962.png

到此这篇关于fastdfs+nginx集群搭建的实现的文章就介绍到这了,更多相关fastdfs+nginx集群搭建内容请搜索真格学网以前的文章或继续浏览下面的相关文章希望大家以后多多支持真格学网! 您可能感兴趣的文章:Nginx+FastDFS搭建图片服务器的方法实现

关键看服务器的用途以及网络构架的部署方式了,如果服务器需要承担webserver的功能,那么这台服务器就需要安装nginx;如果服务器不需要提供webserver的功能,则不需要安装nginx,如果每个都要充当WEB角色就都要安装上nginx内容来自www.zgxue.com请勿采集。


  • 本文相关:
  • nginx+tomcat实现负载均衡,使用redis session共享
  • nginx正则表达式相关的参数和规则介绍
  • nginx ssi指令配置详解
  • nginx如何实现pathinfo模式的方法详解
  • 详解nginx配置url重定向-反向代理
  • 全面了解nginx中的http协议相关模块配置
  • 浅析nginx 负载均衡4种模式
  • nginx基础入门之gzip配置指南
  • nginx实现if多重判断配置方法示例
  • nginx服务器中location配置的一些基本要点解析
  • fastdfs nginx 每台服务器都要安装吗
  • nginx 使用fastdfs-nginx-module 比直接使用nginx...
  • fastDFS和nginx整合 nginx启动老报错 实在是解决不...
  • linux怎么查看nginx和fastdfs搭建的服务器启动
  • 已安装nginx 怎么装第三方fastdfs-nginx-module
  • FastDFS+Nginx出现访问404
  • tomcat,nginx,fastdfs怎么配置
  • Ubuntu10.04下,nginx添加fastdfs-nginx-module,...
  • FastDFS为什么要结合Nginx
  • nginx访问fastDFS文件报错
  • 网站首页网页制作脚本下载服务器操作系统网站运营平面设计媒体动画电脑基础硬件教程网络安全星外虚拟主机华众虚拟主机linuxwin服务器ftp服务器dns服务器tomcat nginxzabbix云和虚拟化服务器其它首页服务器nginx+fastdfs搭建图片服务器的方法实现nginx+tomcat实现负载均衡,使用redis session共享nginx正则表达式相关的参数和规则介绍nginx ssi指令配置详解nginx如何实现pathinfo模式的方法详解详解nginx配置url重定向-反向代理全面了解nginx中的http协议相关模块配置nginx基础入门之gzip配置指南nginx实现if多重判断配置方法示例nginx服务器中location配置的一些基本要点解析nginx提示:500 internal servernginx 多站点配置方法集合权限问题导致nginx 403 forbiddenginx fastcgi错误primary scripnginx服务器的反向代理proxy_pasnginx 403 forbidden的解决办法nginx伪静态配置和常用rewrite伪详解nginx服务器中配置超时时间的nginx下301重定向域名的方法小结windows下nginx+php5的安装与配置nginx expires控制页面缓存nginx+php(fastcgi)搭建高并发web服务器(nginx服务器配置解决ajax的跨域问题nginx服务器中处理ajax跨域请求的配置方法使用nginx做负载均衡的模块解读nginx could not build the server_namesnginx if语句加正则表达式实现字符串截断详解常用的nginx rewrite重写规则神器!最佳 nginx 日志分析工具 goaccessnginx配置虚拟主机vhost的方法详解
    免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved