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. JDBC操作数据库之修改数据

    使用JDBC修改数据库中的数据,起操作方法是和添加数据差不多的,只不过在修改数据的时候还要用到UPDATE语句来实现的,例如:把图书信息id为1的图书数量改为100,其sql语句是:update bo ...

  2. Linux环境下启动MySQL数据库出现找不到mysqld.sock的解决办法!

    问题: 在普通用户权限下运行:mysql -u root -p,回车之后如果会出现如下错误:ERROR 2002 (HY000): Can't connect to local MySQL serve ...

  3. Android + HTML5 混合开发

    摘要: 对于 Android + HTML5 混合开发以下的观点仅仅是我的个人观点,如果有什么不对的地方请指正 简介: 混合开发的 App(Android + HTML5)就是在一个 App 中内嵌一 ...

  4. 多年iOS开发经验总结

    总结了几个月的东西终于能和大家分享了,不多说,直接看东西! 1.禁止手机睡眠 1 [UIApplication sharedApplication].idleTimerDisabled = YES; ...

  5. windows 结束进程的详细过程

    windows上如何结束进程的详细过程,下面附详细,图文说明 在cmd下,输入  netstat   -ano|findstr  8080      //说明:查看占用8080端口的进程 在cmd下, ...

  6. oracle中number类型最简单明了解释

    NUMBER (p,s) p和s范围: p 1-38 s -84-127 number(p,s),s大于0,表示有效位最大为p,小数位最多为s,小数点右边s位置开始四舍五入,若s>p,小数点右侧 ...

  7. canvas,html2canvas等合成图片不清晰问题

    function  pxRa(cxt) { var backingStore = context.backingStorePixelRatio || context.webkitBackingStor ...

  8. 数据分析前戏:ipython使用技巧(上)

    不一定非得使用Jupyter Notebook,试试ipython命令行 安装 ipython 我只试过Windows 10环境下的. 1.安装python安装包之后,应该就有ipython了. 2. ...

  9. Huge Mission

    Huge Mission Problem Description Oaiei is busy working with his graduation design recently. If he ca ...

  10. bzoj4198 荷马史诗 哈夫曼编码

    逐影子的人,自己就是影子. --荷马 Allison 最近迷上了文学.她喜欢在一个慵懒的午后,细细地品上一杯卡布奇诺,静静地阅读她爱不释手的<荷马史诗>.但是由<奥德赛>和&l ...