1.简介

    FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册网站、视频网站等等。FastDFS为互联网量身定制,充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标,使用FastDFS很容易搭建一套高性能的文件服务器集群提供文件上传、下载等服务。
    FastDFS服务端有两个角色:跟踪器(tracker)和存储节点(storage)。跟踪器主要做调度工作,在访问上起负载均衡的作用。存储节点存储文件,完成文件管理的所有功能:就是这样的存储、同步和提供存取接口,FastDFS同时对文件的metadata进行管理。所谓文件的meta data就是文件的相关属性,以键值对(key valuepair)方式表示,如:width=1024,其中的key为width,value为1024。文件metadata是文件属性列表,可以包含多个键值对。跟踪器和存储节点都可以由一台或多台服务器构成。跟踪器和存储节点中的服务器均可以随时增加或下线而不会影响线上服务。其中跟踪器中的所有服务器都是对等的,可以根据服务器的压力情况随时增加或减少。
    为了支持大容量,存储节点(服务器)采用了分卷(或分组)的组织方式。存储系统由一个或多个卷组成,卷与卷之间的文件是相互独立的,所有卷的文件容量累加就是整个存储系统中的文件容量。一个卷可以由一台或多台存储服务器组成,一个卷下的存储服务器中的文件都是相同的,卷中的多台存储服务器起到了冗余备份和负载均衡的作用。
    在卷中增加服务器时,同步已有的文件由系统自动完成,同步完成后,系统自动将新增服务器切换到线上提供服务。当存储空间不足或即将耗尽时,可以动态添加卷。只需要增加一台或多台服务器,并将它们配置为一个新的卷,这样就扩大了存储系统的容量。FastDFS中的文件标识分为两个部分:卷名和文件名,二者缺一不可。

2.下载FastDFS安装包

本手册使用CentOS 7.0 64位操作系统,安装文件服务器时所需下载软件包有:

  1. libfastcommon源代码:wget https://github.com/happyfish100/libfastcommon/archive/V1.0.7.tar.gz
  2. fastdfs-nginx-module源代码:wget http://jaist.dl.sourceforge.net/project/fastdfs/FastDFS%20Nginx%20Module%20Source%20Code/fastdfs-nginx-module_v1.16.tar.gz
  3. FastDFS源代码:wget https://github.com/happyfish100/fastdfs/archive/V5.05.tar.gz
  4. nginx服务器源代码:wgethttp://nginx.org/download/nginx-1.8.0.tar.gz
  5. nginx依赖的pcre库源代码:wget http://netassist.dl.sourceforge.net/project/pcre/pcre/8.36/pcre-8.36.zip
  6. nginx依赖的zlib库源代码:wget http://zlib.net/zlib-1.2.11.tar.gz

3.安装libfastcommon

安装libfastcommon需进行如下操作:

  1. 复制已经下载的软件:cp V1.0.7.tar.gz /usr/local/
  2. 进入复制后的目录: cd /usr/local
  3. 软件解压:tar -zxvf V1.0.7.tar.gz
  4. 软件编译:  ./make.sh
  5. 软件安装: ./make.sh install

注意安装的路径:libfastcommon默认安装到了/usr/lib64/这个位置。

4.安装FastDFS

安装fastdfs需进行如下操作:

  1. 解压文件:tar -zxvf V5.05.tar.gz -C /usr/local
  2. 进入软件目录:cd /usr/local/fastdfs-5.05/
  3. 编辑配置文件:vi make.sh   将TARGET_PREFIX=$DESTDIR/usr改成TARGET_PREFIX=$DESTDIR/usr/local
  4. 软件编译:  ./make.sh
  5. 软件安装: ./make.sh install

编辑make.sh时,可用vi或者vim命令打开make.sh文件,进入文件后,输入字母i表示把文件设置为可编辑模式,修改内容时,移动光标到指定内容处做修改。修改完成后,按ESC退出编辑模式,输入:wq命令,保存并退出此次编辑。

软件安装成功后,服务脚本在/etc/init.d/fdfs_storaged,/etc/init.d/fdfs_trackerd。配置文件在 /etc/fdfs/client.conf.sample,/etc/fdfs/storage.conf.sample,/etc/fdfs/tracker.conf.sample文件中。FastDFS服务脚本设置的bin目录为/usr/local/bin/下,可在这个目录下通过命令(cd /usr/local/bin && ls | grep fdfs)查看它自带的脚本。

5.进行软链接

FastDFS主程序设置的目录为/usr/local/lib/,而我们的安装目录为/usr/lib64,所以我们需要创建/usr/lib64/下的一些核心执行程序的软连接文件。

  1. 命令:ln -s /usr/lib64/libfastcommon.so /usr/local/lib/libfastcommon.so
  2. 命令:ln -s /usr/lib64/libfastcommon.so /usr/lib/libfastcommon.so
  3. 命令:ln -s /usr/local/lib64/libfdfsclient.so /usr/local/lib/libfdfsclient.so
  4. 命令:ln -s /usr/local/lib64/libfdfsclient.so /usr/lib/libfdfsclient.so

6.配置跟踪器tracker

配置tracker需进行如下操作:

  1. 进入配置目录:cd /etc/fdfs
  2. 复制配置文件:cp tracker.conf.sample tracker.conf
  3. 修改配置文件:vim /etc/fdfs/tracker.conf 修改内容为base_path=/fastdfs/tracker
  4. 新建文件:mkdir -p /fastdfs/tracker (这个新建目录就是与base_path对应的文件目录)
  5. 开放端口:22122端口。
  6. 设置tracker开机启动:cd /ect/init.d/ chkconfig -add fdfs_strackerd chkconfig fdfs_trackerd on (设置为开机启动)

对于tracker.conf配置文件参数解释可以找官方文档,地址为:http://bbs.chinaunix.net/thread-1941456-1-1.html。Centos 7.0中操作firewall端口的命令为:

  • 查看端口:firewall-cmd --list-ports
  • 开放端口:firewall-cmd --zone=public --add-port=22122/tcp --permanent   (permanent表示永久生效)
  • 重启firewall:firewall-cmd --reload

tracker.conf文件配置完成后,可通过tracker的命令启动并查看是否配置成功。配置成功后在 /fastdfs/tracker/目录下面会有logs目录和data目录。

  1. 启动tracker命令:/etc/init.d/fdfs_trackerd start
  2. 查看进程命令:ps -el | grep fdfs
  3. 停止tracker命令:/etc/init.d/fdfs_trackerd stop
  4. 目录命令:cd /fastdfs/tracker/ && ll

7.配置存储器storage

配置storage需进行如下操作:

  1. 进入配置目录:cd /etc/fdfs
  2. 复制配置文件:cp tracker.conf.sample storage.conf
  3. 修改配置文件:vim /etc/fdfs/storage.conf 修改内容为base_path=/fastdfs/storage,store_path0=/fastdfs/storage,tracker_server=192.168.3.159:22122(为服务器的外面ip地址) ,http.server_port=8888
  4. 新建文件:mkdir -p /fastdfs/storage (这个新建目录就是与base_path对应的文件目录)
  5. 开放端口:23000端口。
  6. 设置storage开机启动:cd /ect/init.d/ chkconfig -add fdfs_storaged chkconfig fdfs_storaged on (设置为开机启动)

对于storage.conf配置文件参数解释可以找官方文档,地址为:http://fredlong.iteye.com/blog/2287899。 storage.conf文件配置完成后,可通过storage的命令启动并查看是否配置成功。配置成功后在 /fastdfs/storage/目录下面会有logs目录和data目录。

  1. 启动storage命令:/etc/init.d/fdfs_storaged start
  2. 查看进程命令:ps -el | grep fdfs
  3. 停止storage命令:/etc/init.d/fdfs_storaged stop
  4. 目录命令:cd /fastdfs/storage/ && ll

8.文件服务器测试

测试文件服务器是否可用需进行如下操作:

  1. 进入配置文件:cd /etc/fdfs/
  2. 复制客户端配置文件:cp client.conf.sample client.conf
  3. 编辑配置文件:命令:vim /etc/fdfs/client.conf ,修改内容:base_path=/fastdfs/tracker,tracker_server=192.168.3.159:22122
  4. 调用上传命令上传文件:/usr/local/bin/fdfs_upload_file /etc/fdfs/client.conf /root/fastdfsdownfile/V1.0.7.tar.gz   (执行上传文件命令成功时,会返回上传文件所在的位置。)

9.nginx插件安装

  1. 安装gcc环境包:yum groupinstall "Development Tools"
  2. 安装pcre:unzip -f pcre-8.36.zip , cd pcre-8.36,./configure,make && make install (分为四步执行)
  3. 安装zlib:tar -zxvf zlib-1.2.11.tar.gz,cd zlib-1.2.11,./configure,make && make install

安装nginx插件:

  1. 解压文件:tar -zxvf fastdfs-nginx-module_v1.16.tar.gz
  2. 修改配置文件:cd fastdfs-nginx-module/src/  vi config  修改内容为CORE_INCS="$CORE_INCS  /usr/local/include/fastdfs /usr/local/include/fastcommon/"  改成CORE_INCS="$CORE_INCS  /usr/local/include/fastdfs /usr/include/fastcommon/"
  3. 复制配置文件mod_fastdfs.conf:cp  mod_fastdfs.conf /etc/fdfs
  4. 修改配置文件mod_fastdfs.conf:修改配置如下:

    vi /etc/fdfs/mod_fastdfs.conf 
          group_name=group1
          tracker_server=192.168.3.159:22122
          store_path0=/fastdfs/storage
          base_path=/fastdfs/storage
          url_have_group_name = true

    在文件末尾添加以下信息

    [group1] 
          group_name=group1 
          storage_server_port=23000

    store_path_count=1

  5. 文件复制:复制FastDFS里的2个文件,到/etc/fdfs目录中。cp /usr/local/fastdfs-5.05/conf/http.conf /etc/fdfs/,cp /usr/local/fastdfs-5.05/conf/mime.types /etc/fdfs/

  6. 创建一个软连接:在/fastdfs/storage文件存储目录下创建软连接,将其链接到实际存放数据的目录。命令:ln -s /fastdfs/storage/data/ /fastdfs/storage/data/M00

10.nginx安装及绑定

在每个Storage服务器上安装Nginx:

  1. 解压文件:tar -zxvf nginx-1.8.0.tar.gz
  2. 进入目录: cd nginx-1.8.0
  3. 设置配置:./configure --./configure --add-module=/usr/local/fast/fastdfs-nginx-module/src/      (add-module=/${fastdfs-nginx-module安装目录}/fastdfs-nginx-module/src)
  4. 编译:make
  5. 安装:make install
  6. 设置nginx配置文件:cd /usr/local/nginx/conf ,  vi nginx.conf
  7. nginx.conf文件修改内容为:

    listen 8888;
    server_name localhost;
    location ~/group([0-9])/M00 {
    root /fastdfs/storage/data;
    ngx_fastdfs_module;
    }

    注意:nginx里的端口要和配置FastDFS存储中的storage.conf文件配置一致,
    也就是(http.server_port=8888)

最后检查防火墙,然后启动nginx服务:启动命令:/usr/local/nginx/sbin/nginx。启动成功后网页访问如下:

上传测试文件并通过网页访问效果如下:

FastDFS与Nginx的配置说明的更多相关文章

  1. FastDFS 与 Nginx 实现分布式图片服务器

    FastDFS 与 Nginx 实现分布式图片服务器 本人的 Ubuntu18.04 用户名为 jj 点我下载所有所需的压缩包文件 一.FastDFS安装 1.安装 fastdfs 依赖包 ① 解压 ...

  2. FastDFS整合nginx后,nginx一直报错

    FastDFS整合nginx后,nginx一直报错: 报错内容: [2018-06-11 09:41:21] ERROR - file: ../common/fdfs_http_shared.c, l ...

  3. FastDFS与Nginx的搭建及遇到的问题

    1.1  FastDFS与Nginx的搭建 可以使用一台虚拟机来模拟,只有一个Tracker.一个Storage服务. 配置nginx访问图片. 1.1.1   搭建步骤 第一步:把fastDFS需要 ...

  4. FastDFS 配置 Nginx 模块,并实现分布式同步-Linux

    1.搭建虚拟机 a.复制虚拟机文件 首先复制我们之前安装好的fastdfs虚拟机,因为我们现在要设置它的IP为21,改名为CentOS-fastdfs - 21. b.设置网络 生成新的MAC地址 设 ...

  5. CentOS单机安装FastDFS&整合Nginx

    单机安装 一 准备工作 准备linux服务器或虚拟机,这里是虚拟机,操作系统CentOS 6.4 Tracker 和 Storage 安装在一台机器上 FastDFS 5.08版本 1,准备软件 软件 ...

  6. FastDFS整合nginx(三)

    一 安装 百度云:所有附件的地址 unzip fastdfs-nginx-module-master.zip [root@node02 mnt]# cd fastdfs-nginx-module-ma ...

  7. 分布式文件系统 - FastDFS 配置 Nginx 模块及上传测试

    也不说废话,直接干 上一篇 分布式文件系统 - FastDFS 在 CentOS 下配置安装部署 中安装了 FastDFS 后,并配置启动了 Tracker 和 Storage 服务,已经可以上传文件 ...

  8. FastDFS、nginx配置手记

    第一部分   FastDFS介绍 1.FastDFS是什么 FastDFS是一款类Google FS的开源分布式文件系统,它用纯C语言实现,支持Linux.FreeBSD.AIX等UNIX系统.它只能 ...

  9. FastDFS整合Nginx

    浏览器访问FastDFS存储的图片需要通过Nginx访问 需要安装fastdfs-nginx-module.Nginx 安装fastdfs-nginx-module模块 (1)将fastdfs-ngi ...

随机推荐

  1. javaScript【创建对象、创建类、成员变量、方法、公有和私有、静态】

    创建对象 方式① 直接使用new Object() var obj = new Object(); 方式② 使用空的{}大括号 var obj2 = {}; 测试 增加属性,访问属性 我们要为创建的对 ...

  2. JSP第五篇【JSTL的介绍、core标签库、fn方法库、fmt标签库】

    什么是JSTL JSTL全称为 JSP Standard Tag Library 即JSP标准标签库. JSTL作为最基本的标签库,提供了一系列的JSP标签,实现了基本的功能:集合的遍历.数据的输出. ...

  3. 通过Excel认识POI

    1.POI是什么 Apache POI - the Java API for Microsoft Documents,顾名思义,Apache的三方包,用来操作微软office文档的,多数时候用来操作e ...

  4. 06jQuery-04-DOM操作

    jQuery既然是为了帮助你能从js的繁琐中解脱出来,自然在DOM操作上也有自己的一套. 1.修改Text和HTML 之前我们提到过,如果用JS的话,你要修改Text或者HTML需要用到其innerH ...

  5. 理解G1垃圾回收日志

    本篇文章主要介绍在-XX:+PrintGCDetails选项的情况下G1 GC log打印的信息.(注:本文假设读者对G1算法的基本原理已经有所了解) 下面是一段G1垃圾收集器相关的log信息 0.5 ...

  6. mapreduce新旧api对比

    对比:hadoop版本1.x 新版,hadoop版本0.x 旧版 1.新api引用包一般是mapreduce ,旧版api引用的包一般是mapred 2.新api使用Job,旧版api使用JobCon ...

  7. 由一次自建库迁移到阿里云RDS引发的性能问题。

    刚入职一互联网公司,项目正好处于计划上线的时间,由于公司前不久已经购买了rds服务,领导决定尝试一番! 当然,新事物.云事物还是要谨慎的.安排我先把测试环境数据库迁移上去,这里吐槽一下,往rds迁移一 ...

  8. C#中的两把双刃剑:抽象类和接口

    问题出现: 这也是我在学习抽象类和接口的时候遇到的问题,从我归纳的这三个问题,不难看出这也许是我们大多数程序员遇到问题的三个阶段, 第一阶段(基础概念):就象问题1一样,这部分人首先需要扫清基础概念的 ...

  9. Java 网络 IO 模型

    在进入主题之前先看个 Java 网络编程的一个简单例子:代码很简单,客户端和服务端进行通信,对于客户端的每次输入,服务端回复 get.注意,服务端可以同时允许多个客户端连接. 服务端端代码: // 创 ...

  10. oracle pl/sql 简介

    一.pl/sql 是什么pl/sql(procedural language/sql)是oracle在标准的sql语言上的扩展.pl/sql不仅允许嵌入sql语言,还可以定义变量和常量,允许使用条件语 ...