一、FastDFS概述
FastDFS是阿里巴巴开源的一套轻量级,天生就是分布式设计的文件系统,FastDFS的源代码由C语言开发,目前可运行在Linux,FreeBSD,Unix等类操作系统上,FastDFS解决了大数据量文件存储(这里经常有人说成大数据,我本人是不赞同的)和读写分离,备份容错,负载均衡,动态扩容等问题,这也就是原作者所描述的高性能和高扩展性的文件系统。适合存储4KB~500MB之间的小文件,如图片网站、短视频网站、文档、app下载站等。
二、FastDFS作者简介
FastDFS的作者是余庆(happyfish100),github地址https://github.com/happyfish100
三、下载所需要的安装包
https://github.com/happyfish100
- fastdfs 核心类库
- libfastcommon 公共类库
- fastdfs-nginx-module 与nginx整合相关的类库
如何下载对应的版本
四、上传安装包到服务器上
/usr/local/myWorkSpace/FastFDS
因为这里下载的是zip包,linux解压zip文件,命令:unzip 文件所在路径, 如果没有该命令,可先安装,命令为:yum -y install unzip
五、开始搭建
- 安装 libfastcommon
解压公共类库包
unzip libfastcommon-1.0.39.zip
(/usr/local/myWorkSpace/FastFDS解压到上传目录)
cd libfastcommon-1.0.39
./make.sh && ./make.sh install
查看libfastcommon是否安装成功
cd /usr/lib && ll libfast*
显示libfastcommon.so -> /usr/lib64/libfastcommon.so
安装成功
- 安装FastDFS
创建目录用于存放fastdfs配置
mkdir /etc/fdfs/
cp /usr/local/myWorkSpace/FastFDS/fastdfs-5.11/conf/mime.types /etc/fdfs/
cp /usr/local/myWorkSpace/FastDFS/fastdfs-5.11/conf/http.conf /etc/fdfs/
解压
unzip fastdfs-5.11.zip
(/usr/local/myWorkSpace/FastFDS解压到上传目录)
cd fastdfs-5.11
./make.sh是安装命令 tracker是监控服务 storage是存储服务 test是测试服务
./make.sh && ./make.sh install
查看是否安装成功
cd /usr/bin && ll fdfs
- 配置FastDFS跟踪器(Tracker)
vim /usr/local/myWorkSpace/FastDFS/fastdfs-5.11/conf/tracker.conf
base_path =/usr/local/myWorkSpace/FastDFS/fastdfs/tracker
–存放data和log的位置
:wq
创建存放Tracker跟踪器data和log的目录
mkdir -p /usr/local/myWorkSpace/FastDFS/fastdfs/tracker
创建存放Storage数据存储服务的data和log目录
mkdir /usr/local/myWorkSpace/FastDFS/fastdfs/storage
创建Client目录
mkdir /usr/local/myWorkSpace/FastDFS/fastdfs/client
启动tracker服务
fdfs_trackerd /usr/local/myWorkSpace/FastDFS/fastdfs-5.11/conf/tracker.conf
启动成功后可以去 /usr/local/myWorkSpace/FastDFS/fastdfs/tracker目录查看 有data和logs文件夹生成
cd /usr/local/myWorkSpace/FastDFS/fastdfs/tracker
ll
设置Tracker开机启动
chkconfig fdfs_trackerd on
或者修改配置文件方式:
vim /etc/rc.d/rc.local
加入配置:
/etc/init.d/fdfs_trackerd start
- 配置 FastDFS 存储 (Storage)
vim /usr/local/myWorkSpace/FastDFS/fastdfs-5.11/conf/storage.conf
group_name=resource
自定义访问资源名称
base_path =/usr/local/myWorkSpace/FastDFS/fastdfs/storage
–存放data和log的位置
store_paht0=/usr/local/myWorkSpace/FastDFS/fastdfs/storage
–存放data和log的位置
tracker_server=服务器公网ip:22122
:wq
启动storage服务
fdfs_storaged /usr/local/myWorkSpace/FastDFS/fastdfs-5.11/conf/storage.conf
设置Storage开机启动
chkconfig fdfs_storaged on
或者修改配置文件方式:
vim /etc/rc.d/rc.local
加入配置:
/etc/init.d/fdfs_storaged start
- 文件上传测试
vim /usr/local/myWorkSpace/FastDFS/fastdfs-5.11/conf/client.conf
Client 的数据和日志目录
base_path=/ljzsg/fastdfs/client
Tracker端口
tracker_server=公网ip:22122
准备一张照片上传到 /usr/local/myWorkSpace/FastDFS/目录下
fdfs_test /usr/local/myWorkSpace/FastDFS/fastdfs-5.11/conf/client.conf upload /usr/local/myWorkSpace/FastDFS/图片名.后缀名
上传成功,至此storage服务安装成功
6.安装fastdfs-nginx-module
解压
unzip fastdfs-nginx-module-1.20.zip
(/usr/local/myWorkSpace/FastFDS解压到上传目录)
cd fastdfs-nginx-module-1.20/src/
vim fastdfs-nginx-module-1.20/src/config
ngx_module_incs="/usr/include/fastdfs /usr/include/fastcommon"
CORE_INCS="$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon"
:wq
vim astdfs-nginx-module-1.20/src/mod_fastdfs.conf
base_path=/usr/local/myWorkSpace/FastDFS/fastdfs
tracker_server=公网ip地址:22122
group_name=source
url_have_group_name=true
store_path0=/usr/local/myWorkSpace/FastDFS/fastdfs/storage
:wq
cp astdfs-nginx-module-1.20/src/mod_fastdfs.conf /etc/fdfs/
7.fastdfs整合nginx
这里我是安装过nginx。服务器已经安装有Nginx,但缺少必要模块,例如:SSL模块、fastdfs-nginx-module 等,此时需要重新编译Nginx 并添加制定模块
1、找到Nginx的安装目录,如果不清楚之前服务器的安装目录结构,可以用命令模糊搜索
find / -name *nginx*
2、停止nginx
nginx -s stop
3、备份 /Nginx的安装目录/sbin下的 nginx (防止配置错误以备还原)
cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx_bak_20190319
4、删除Makefile
rm -rf Makefile
5、重新执行编译文件
./configure --prefix=/usr/local/myWorkSpace/nginx1.16 --with-http_stub_status_module --with-http_ssl_module --with-debug --add-module=/usr/local/myWorkSpace/FastDFS/fastdfs-nginx-module-1.20/src/
执行 make 命令( 注意只执行make ,不要执行install ,因为不需要重新安装,只需要生存新的nginx启动项即可)
make
6、查看模块添加情况
./nginx -V
7、配置nginx
mkdir /nginx安装目录/conf/conf.d
vim /nginx安装目录/conf/nginx.conf
在http之内,server括号之外添加
include conf.d/*.conf;
新建一个文件fastdfs-server.conf文件
vim /nginx安装目录/conf/conf.d/fastdfs-server.conf
server{ listen 9870; server_name 公网ip; location /source/M00 { ngx_fastdfs_module; } }
启动nginx,就可以访问图片了