一、FastDFS简介

1、基础概念

FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储、文件同步、文件上传、文件下载等,解决了大容量存储和负载均衡的问题。

2、环境概览

  1. 1、默认存在Gcc编译环境,Centos7虚拟机
  2. 2、安装LibFastCommon环境
  3. 3FastDFS中间件安装
  4. 4Nginx代理服务器安装

二、安装LibFastCommon

核心流程
下载->解压->编译->安装

  1. ## 下载
  2. [root@localhost mysoft]# wget
  3. https://github.com/happyfish100/libfastcommon/archive/V1.0.38.tar.gz
  4. ## 解压
  5. [root@localhost mysoft]# tar -zxvf V1.0.38.tar.gz
  6. [root@localhost mysoft]# cd libfastcommon-1.0.38/
  7. ## 编译
  8. [root@localhost libfastcommon-1.0.38]# ./make.sh
  9. ## 安装
  10. [root@localhost libfastcommon-1.0.38]# ./make.sh install

三、安装FastDFS

流程:下载->解压->编译->安装->创建相关路径->配置跟踪器-> 配置数据存储->配置客户端->Nginx环境配置

1、基础安装步骤

  1. ## 下载
  2. [root@localhost mysoft]# wget
  3. https://github.com/happyfish100/fastdfs/archive/V5.11.tar.gz
  4. ## 解压
  5. [root@localhost mysoft]# tar -zxvf V5.11.tar.gz
  6. ## 编译
  7. [root@localhost mysoft]# cd fastdfs-5.11/
  8. [root@localhost fastdfs-5.11]# ./make.sh
  9. ## 安装
  10. [root@localhost fastdfs-5.11]# ./make.sh install

2、创建相关路径

用处后续说明。

  1. [root@localhost data]# mkdir -p /data/fastdfs/log
  2. [root@localhost data]# mkdir -p /data/fastdfs/data
  3. [root@localhost data]# mkdir -p /data/fastdfs/tracker
  4. [root@localhost data]# mkdir -p /data/fastdfs/client

3、配置跟踪器

Tracker — >> 跟踪器
1)查看配置文件
注意这里目录的转换,这里给的是样例,具体的配置还要自己动手。

  1. [root@localhost fastdfs-5.11]# cd /etc/fdfs/
  2. [root@localhost fdfs]# ll
  3. total 24
  4. client.conf.sample
  5. storage.conf.sample
  6. storage_ids.conf.sample
  7. tracker.conf.sample

2)配置tracker.conf文件

  1. [root@localhost fdfs]# cp tracker.conf.sample tracker.conf
  2. [root@localhost fdfs]# vim tracker.conf
  3. ## 关注如下几个配置
  4. ## 存储数据和日志文件的基本路径
  5. base_path=/data/fastdfs/tracker
  6. ## Http服务端口
  7. http.server_port=80
  8. ## 默认提供服务端口
  9. port=22122

3)启动跟踪器

  1. ## 启动
  2. [root@localhost fdfs]# /usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf start
  3. ## 查看状态
  4. [root@localhost fdfs]# netstat -apn|grep fdfs

4、配置数据存储

1)查看配置文件

  1. [root@localhost fastdfs-5.11]# cd /etc/fdfs/
  2. [root@localhost fdfs]# ll
  3. storage.conf.sample

2)配置storage.conf文件

  1. [root@localhost fdfs]# cp storage.conf.sample storage.conf
  2. [root@localhost fdfs]# vim storage.conf
  3. ## 关注如下几个配置
  4. ## storage存储data和log的跟路径
  5. base_path=/data/fastdfs/data
  6. ## 默认组名
  7. group_name=group1
  8. ## 默认端口,相同组的storage端口号必须一致
  9. port=23000
  10. ## 配置一个存储路径
  11. store_path_count=1
  12. store_path0=/data/fastdfs/data
  13. ## 配置跟踪器IP和端口
  14. tracker_server=192.168.72.130:22122

3)启动存储服务

  1. ## 启动
  2. [root@localhost fdfs]# /usr/bin/fdfs_storaged /etc/fdfs/storage.conf start
  3. ## 查看进程
  4. [root@localhost fdfs]# netstat -apn|grep fdfs
  5. tcp 0:22122 LISTEN 4845/fdfs_trackerd
  6. tcp 0:45422 SYN_SENT 5410/fdfs_storaged
  7. ## 查看启动日志
  8. [root@localhost fdfs]# tail -f /data/fastdfs/data/logs/storaged.log
  9. ## 日志展示:单台FastDFS安装成功
  10. set tracker leader: 192.168.72.130:22122
  11. ## 查看Storage和Tracker是否在通信
  12. [root@localhost fdfs]# /usr/bin/fdfs_monitor /etc/fdfs/storage.conf
  13. Storage 1:
  14. id = 192.168.72.130
  15. ip_addr = 192.168.72.130 (localhost.localdomain) ACTIVE

5、配置客户端测试

1)查看配置文件

  1. [root@localhost /]# cd /etc/fdfs
  2. [root@localhost fdfs]# ll
  3. total 40
  4. client.conf.sample

2)配置client.conf文件

  1. [root@localhost fdfs]# cp client.conf.sample client.conf
  2. [root@localhost fdfs]# vim client.conf
  3. ## 关注如下几个配置
  4. ## client数据和日志目录
  5. base_path=/data/fastdfs/client
  6. ## 配置跟踪器IP和端口
  7. tracker_server=192.168.72.130:22122

3)客户端测试
调用客户端文件上传命令
/usr/bin/fdfs_upload_file /etc/fdfs/client.conf
返回文件上传的相对路径和编号
group1/M00/00/00/wKhIgl0mmE-ATEXPAAQ2pIoAy98392.jpg

  1. [root@localhost fdfs]# /usr/bin/fdfs_upload_file /etc/fdfs/client.conf /data/img/img1.jpg
  2. group1/M00/00/00/wKhIgl0mmE-ATEXPAAQ2pIoAy98392.jpg

这样FastDFS单台环境就安装好了,步骤有点繁杂,不过这就是生活。
文件成功上传storage服务器,但是还无法查看下载。需要安装Nginx服务器用来支持Http方式访问文件。

四、安装Nginx

1、下载解压Nginx

  1. ## 下载nginx
  2. [root@localhost mysoft]# wget
  3. http://nginx.org/download/nginx-1.15.2.tar.gz
  4. ## 解压nginx
  5. [root@localhost mysoft]# tar -zxvf nginx-1.15.2.tar.gz

2、下载解压Fast-Nginx

  1. ## 下载fastdfs-nginx
  2. [root@localhost mysoft]#wget
  3. https://github.com/happyfish100/fastdfs-nginx-module/archive/5e5f3566bbfa57418b5506aaefbe107a42c9fcb1.zip
  4. ## 解压fastdfs-nginx
  5. [root@localhost mysoft]# mv 5e5f3566bbfa57418b5506aaefbe107a42c9fcb1.zip fast-nginx.zip
  6. [root@localhost mysoft]# unzip fast-nginx.zip
  7. [root@localhost mysoft]# mv fastdfs-nginx-module-5e5f3566bbfa57418b5506aaefbe107a42c9fcb1/
  8. fastdfs-nginx-module

3、安装必须依赖

  1. ## pcre-devel 环境
  2. [root@localhost nginx-1.15.2]# yum install -y pcre pcre-devel
  3. ## zlib-devel 环境
  4. [root@localhost nginx-1.15.2]# yum install -y zlib zlib-devel
  5. ## openssl-devel 环境
  6. [root@localhost nginx-1.15.2]# yum install -y openssl openssl-devel

4、配置安装

  1. [root@localhost nginx-1.15.2]# ./configure --add-module=/usr/local/mysoft/fastdfs-nginx-module/src
  2. [root@localhost nginx-1.15.2]# make && make install

5、错误解决

版本问题导致,Fast-Nginx必须使用这个修复版本。
https://github.com/happyfish100/fastdfs-nginx-module/archive/5e5f3566bbfa57418b5506aaefbe107a42c9fcb1.zip

  1. make[1]: *** [objs/addon/src/ngx_http_fastdfs_module.o] Error 1
  2. make[1]: Leaving directory `/usr/local/mysoft/nginx-1.15.2'
  3. make: *** [build] Error 2

6、查看安装结果

如下情况则表示安装成功了。

  1. [root@localhost nginx-1.15.2]# /usr/local/nginx/sbin/nginx -V
  2. nginx version: nginx/1.15.2
  3. built by gcc 4.8.5 20150623 (Red Hat 4.8.5-36) (GCC)
  4. configure arguments: --add-module=/usr/local/mysoft/fastdfs-nginx-module/src

五、测试图片访问

1、配置客户端

  1. ## 移动配置文件
  2. [root@localhost src]# pwd
  3. /usr/local/mysoft/fastdfs-nginx-module/src
  4. [root@localhost src]# ll
  5. total 76
  6. Apr 14 2017 mod_fastdfs.conf
  7. [root@localhost src]# cp mod_fastdfs.conf /etc/fdfs/
  8. [root@localhost fdfs]# pwd
  9. /etc/fdfs
  10. [root@localhost fdfs]# vim mod_fastdfs.conf
  11. ## 调整如下配置
  12. ## 链接超时
  13. connect_timeout=20
  14. ## 配置跟踪器IP和端口
  15. tracker_server=192.168.72.130:22122
  16. ## 路径包含group
  17. url_have_group_name = true
  18. # 必须和storage配置相同
  19. store_path0=/data/fastdfs/data

2、完善FastDFS配置

  1. [root@localhost fdfs]# cd /usr/local/mysoft/fastdfs-5.11/conf/
  2. [root@localhost conf]# cp anti-steal.jpg http.conf mime.types /etc/fdfs/

3、配置Nginx

在Nginx的80服务端口下添加如下配置。注意这里的路径是Nginx安装自动生成的路径。

  1. [root@localhost nginx]# cd /usr/local/nginx/conf/
  2. [root@localhost conf]# vim nginx.conf
  3. server {
  4. listen 80;
  5. location ~/group([0-9])/M00 {
  6. root /data/fastdfs/data;
  7. ngx_fastdfs_module;
  8. }
  9. }

查看配置结果

  1. [root@localhost conf]# /usr/local/nginx/sbin/nginx -V
  2. nginx version: nginx/1.15.2
  3. built by gcc 4.8.5 20150623 (Red Hat 4.8.5-36) (GCC)
  4. configure arguments: --add-module=/usr/local/mysoft/fastdfs-nginx-module/src

这样就配置成功了。

4、见证结束的时候

启动Nginx服务。

  1. ## 启动
  2. /usr/local/nginx/sbin/nginx
  3. ## 停止
  4. /usr/local/nginx/sbin/nginx -s stop
  5. ## 重启
  6. /usr/local/nginx/sbin/nginx -s reload

5、访问上传图片

喵喵的,居然成功了!

  1. http://192.168.72.130
  2. /group1/M00/00/00/wKhIgl0mmE-ATEXPAAQ2pIoAy98392.jpg