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. UVW源码漫谈(二)

    前一篇发布出来之后,我看着阅读量还是挺多的,就是评论和给意见的一个都没有,或许各位看官就跟我一样,看帖子从不回复,只管看就行了.毕竟大家都有公务在身,没太多时间,可以理解.不过没关系,我是不是可以直接 ...

  2. 支付宝支付php的demo或sdk报错 Warning: openssl_sign() [function.openssl-sign]: Unknown signature algorithm. in

    最近在做支付宝支付,在本地测试一切正常,上传到服务器就遇到报错: Warning: openssl_sign() [function.openssl-sign]: Unknown signature ...

  3. 工作总结--如何定位web系统前后台的bug,以及bug分析/测试感想

    对于web项目前台和后台bug定位分析:一. 系统整体了解 懒企鹅营销服务平台用的架构:web前端: Bootstrap 3.0 组件丰富,兼容性好,界面美观 Server端: jsp+Servlet ...

  4. 初识Hibernate之环境搭建

         相信所有做后端的程序员同行们,没有不知道Hibernate大名的.这是一个经典的轻量级Java EE持久层的解决方案,它使得我们程序员能以面向对象的思维操作传统的关系型数据库,这也是其存在的 ...

  5. 用postal.js在AngularJS中实现订阅发布消息

    点击查看AngularJS系列目录 用postal.js在AngularJS中实现event bus 用postal.js在AngularJS中实现event bus 理想状态下,在一个Angular ...

  6. 使用 TUN 设备实现一个简单的 UDP 代理隧道

    若要实现在 Linux 下的代理程序,方法有很多,比如看着 RFC 1928 来实现一个 socks5 代理并自行设置程序经过 socks5 代理等方式,下文是使用 Linux 提供的 tun/tap ...

  7. 【Python练习1】统计一串字符中英文字母、空格、数字和其他字符的个数

    练习思路: 1.输入一串字符 2.筛选出字符中的英文字母并统计 3.筛选出字符中的空格并统计 4.筛选出字符中的数字并统计 5.筛选出字符中的其他字符并统计 代码实现: def msg(s): abc ...

  8. vue组件初学--弹射小球

    1. 定义每个弹射的小球组件( ocicle ) 2. 组件message自定义属性存放小球初始信息(可修改) { top: "0px", //小球距离上方坐标 left: &qu ...

  9. H5页面解决IOS进入不自动播放问题(微信内)

    废话少说,直接上代码. 主要还是调用微信的jdk做兼容处理.,安卓可自动播放. ($(function(){ $(function(){ /* ** 复选框*/ $('.ul-radio').on(' ...

  10. 配置 VirtualBox backend - 每天5分钟玩转 Docker 容器技术(75)

    Rexy-Ray 支持多种 backend,上一节我们已经安装配置了 Rex-Ray,今天演示如何配置 VirtualBox backend. 在 VirtualBox 宿主机,即我的笔记本上启动 v ...