使用CentOS 7搭建FastDFS分布式文件系统教程

Posted 吴柯的运维笔记

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用CentOS 7搭建FastDFS分布式文件系统教程相关的知识,希望对你有一定的参考价值。

“每个理性的IT人士都置顶了吴柯的运维笔记”

FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册网站、视频网站等等。

(图片来源网络)

FastDFS安装配置

https://github.com/happyfish100/fastdfs/releases

环境安装

#yum -y install gcc gcc-c++

安装fastdfs依赖libevent

#yum -y install libevent*

 

下载libfastcommon安装包

#git clone https://github.com/happyfish100/libfastcommon.git

#cd libfastcommon/

#./make.sh

#./make.sh install

 

下载安装FastDFS安装包

下载压缩包-解压-进入安装包-执行安装脚本(余庆这里写好安装脚本,执行就行)

#wget https://github.com/happyfish100/fastdfs/archive/V5.05.tar.gz

#tar -zxvf V5.05.tar.gz

#cd fastdfs-5.05/

#./make.sh

#./make.sh install

安装成功后,/etc/fdfs目录下会有相关配置文件:

client.conf

http.conf

mime.types

storage.conf

tracker.conf

 

注意:以上步骤在tracker和storage端都执行安装

修改配置文件:

配置tracker(服务器:192.168.10.231)

1.配置tracker数据文件和目录

#mkdir /data/fastdfs/trackerd/data

#mkdir /data/fastdfs/trackerd/logs


2.修改配置文件

# vim /etc/fdfs/tracker.conf

disabled=false #启用配置文件

port=22122 #设置tracker的端口号

base_path=/data/fastdfs/trackerd#设置tracker的数据文件和日志目录

http.server_port=80 #设置http端口号


3.启动tracker服务

# /usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf

需要的开机自动开启的情况:

# echo '/usr/local/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart' >> /etc/rc.d/rc.local


4.查看服务端口

# netstat -ntpul |grep :22122

tcp    0   0 0.0.0.0:22122         0.0.0.0:*        LISTEN      19162/fdfs_trackerd



配置storage(服务器:192.168.10.232)

1.配置tracker数据文件和目录

#mkdir /data/fastdfs/storage/data

#mkdir /data/fastdfs/storage/logs


2.修改storage配置文件

disabled=false #启用配置文件

group_name=group1 #组名,根据实际情况修改

port=23000 #设置storage的端口号

base_path=/data/fastdfs/storage #设置storage的日志目录

store_path_count=1 #存储路径个数,需要和store_path个数匹配

store_path0=/data/fastdfs/storage #存储路径

http.server_port=80 #设置http端口号


3.启动storaged服务  

#/usr/bin/fdfs_storage /etc/fdfs/storage.conf

设置开机启动

#echo '/usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart' >> /etc/rc.d/rc.loca


4.查看服务端口

# netstat -ntpul |grep :23000

tcp   0   0 0.0.0.0:23000      0.0.0.0:*       LISTEN      10394/fdfs_storaged



配置http.conf中有防盗链的,可以根据需要配置一下

http.anti_steal.check_token=true #是否开启防盗链,默认为false

http.anti_steal.check_token=truehttp.anti_steal.token_ttl=900  #防盗链token的有效时长

http.anti_steal.secret_key=FastDFSSecretKey001  #生成token的密钥

http.anti_steal.token_check_fail=/data/fastdfs/img/anti-steal.jpg   如果是防盗链,需要展示的图片路径

 

配置client及上传文件

#mkdir /data/fastdfs/client      #创建client文件

# vim /etc/fdfs/client.conf      #根据数据情况修改
base_path=/data/fastdfs/client
tracker_server=192.168.10.231:22122

# fdfs_upload_file /etc/fdfs/client.conf /root/test.jpg    #上传测试文件

group1/M00/00/00/wKgK6Fq0mYyAa2jUAAJ2pe-M3qM977.jpg

执行成功会返回对应的组+M00+图片的相对路径(也即上述storage配置的路径)

 

安装fastdfs-nginx-module模块,配置nginx做反向代理,使用浏览器访问上传文件

1.安装nginx依赖

# yum -y install openssl openssl-devel pcre pcre-devel zlib zlib-devel

 

2.下载fastdfs-nginx-module模块

#git clone https://github.com/happyfish100/fastdfs-nginx-module

#vim /root/fastdfs-nginx-module/src/config    #配置插件参数

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

CORE_LIBS="$CORE_LIBS -L/usr/lib -lfastcommon -lfdfsclient"

不做修改可能出现如下情况

(编译时会报错:

/usr/src/fastdfs-nginx-module/src/common.c:21:25:致命错误:fdfs_define.h:没有那个文件或目录

#include "fdfs_define.h"编译中断。

原因:编译安装nginx的fastdfs插件的头文件没有找到,由于编译nginx时候系统会到/usr/local/include,而编译安装fastdfs-nginx-module时则默认保存在了/usr/include目录。

修复:ln -s /usr/include/fast* /usr/local/include/

)


3.下载安装nginx

# wget http://nginx.org/download/nginx-1.12.2.tar.gz

#tar -xvf nginx-1.12.2.tar.gz

#useradd -s /sbin/nologin nginx   //创建nginx用户

#cd nginx-1.12.2

#./configure --prefix=/usr/local/nginx --with-http_ssl_module --user=nginx --group=nginx --add-module=/root/fastdfs-nginx-module/src/

#make && make install

# nginx -V          #查看已添加的模块

nginx version: nginx/1.12.2

built by gcc 4.4.7 20120313 (Red Hat 4.4.7-18) (GCC)

built with OpenSSL 1.0.1e-fips 11 Feb 2013

TLS SNI support enabled

configure arguments: --prefix=/usr/local/nginx --with-http_ssl_module --user=nginx --group=nginx --add-module=/root/fastdfs-nginx-module/src/


4.修改nginx配置文件并启动

# vim /usr/local/nginx/conf/nginx.conf

    server {

        listen       8081;

        server_name  localhost 192.168.10.232;

        location /group1/M00{

           root /fastdfs/storage/data;

           ngx_fastdfs_module;

        }

    }


启动nginx

# /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

# netstat -ntpul |grep nginx

tcp    0   0 0.0.0.0:80      0.0.0.0:*     LISTEN      13311/nginx: master

tcp    0   0 0.0.0.0:8081     0.0.0.0:*     LISTEN      13311/nginx: master

 

5.拷贝并修改fastdfs-nginx-module的配置文件

#cp /root/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs

#vim /etc/fdfs/mod_fastdfs.conf

tracker_server=192.168.10.231:22122

store_path0=/data/fastdfs/storage

base_path=/data/fastdfs/storage/data

url_have_group_name = true      (配置多个tracker时,应该将此项设置为true)

 

6.建立软连接(配置文件中storage存放数据的路径)

#ln -s /data/fastdfs/storage/data /data/fastdfs/storage/data/M00

将FastDFS_v4.06配置目录下的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

 

7.重启nginx

# /usr/local/nginx/sbin/nginx -s reload

 

8.上传文件并测试浏览器访问

# fdfs_upload_file /etc/fdfs/client.conf /root/test.jpg   

group1/M00/00/00/wKgK6Fq0mYyAa2jUAAJ2pe-M3qM977.jpg

浏览器访问:ip:端口/上传文件路径

http://192.168.10.232:8081/group1/M00/00/00/wKgK6Fq0mYyAa2jUAAJ2pe-M3qM977.jpg

效果如下:


 

推荐阅读:


以上是关于使用CentOS 7搭建FastDFS分布式文件系统教程的主要内容,如果未能解决你的问题,请参考以下文章

CentOS7搭建FastDFS V5.11分布式文件系统

centos7 搭建FastDFS服务器

CentOS7搭建FastDFS V5.11分布式文件系统

CentOS7搭建FastDFS V5.11分布式文件系统-第三篇

CentOS7搭建FastDFS V5.11分布式文件系统-第二篇

CentOS6.5环境搭建分布式存储FastDFS-5.0.5集群详细过程