使用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分布式文件系统-第三篇