单节点FastDFS搭建

单节点FastDFS搭建

技术论坛:http://bbs.chinaunix.net/forum-240-1.html
FAQ:http://bbs.chinaunix.net/thread-1920470-1-1.html
资源地址: https://sourceforge.net/projects/fastdfs/
源码资源: https://github.com/happyfish100

安装FastDFS依赖

yum install -y make cmake gcc-c++

安装FastDFS核心库 libfastcommon

#解压压缩包
unzip libfastcommon-master.zip -d /.../.../...
#进入到解压缩的目录 编译
./make.sh 
#安装
#固定默认安装位置在 /usr/lib64/ 和 /usr/include/fastcommon/两个目录中
./make.sh install 
#因为FastDFS主程序设置的lib目录是 /usr/local/lib,所以需要创建软链接
ln -s /usr/lib64/libfastcommon.so /usr/local/lib/libfastcommon.so
ln -s /usr/lib64/libfastcommon.so /usr/lib/libfastcommon.so
ln -s /usr/lib64/libfdfsclient.so /usr/local/lib/libfdfsclient.so
ln -s /usr/lib64/libfdfsclient.so /usr/lib/libfdfsclient.so

FastDFS主程序安装

#解压缩
unzip fastdfs-master.zip -d /.../.../...
#编译安装
./make.sh
./make.sh install

#安装后,FastDFS主程序所在位置
/usr/bin : 可执行文件所在位置。
/etc/fdfs : 配置文件所在位置
/usr/lib64 : 主程序代码所在位置
/usr/include/fastdfs : 包含的插件所在位置

服务配置

程序脚本

在/etc/init.d/目录中,脚本文件是fdfs-storaged和fdfs-trackerd

配置文件

配置文件在/etc/fdfs/目录中
tracker.conf.sample - 跟踪器服务配置文件模板
tracker.conf.sample - 存储服务器配置文件模板
client.conf.sample - FastDFS提供的命令行客户端配置文件模板,可以通过命令行测试FastDFS有效性

Tracker服务

修改配置文件
#复制一份模板配置文件
cd /etc/fdfs
cp tracker.conf.sample tracker.conf
#打开tracker.conf
#修改base_path路径,base_path是FastDFSTracker启动后使用的根目录,用来存放Tracker的data和log。
#配置中的路径需要先创建好才能启动服务
base_path=/home/yuqing/fastdfs  ->  base_path=/var/data/fastdfs-tracker
启动Tracker
/etc/init.d/fdfs_trackerd start
查看服务状态
/etc/init.d/fdfs_trackerd status
停止服务
/etc/init.d/fdfs_trackerd stop
重启服务
/etc/init.d/fdfs_trackerd restart

Storage服务

修改配置文件
cd /etc/fdfs
cp storage.conf.sample storage.conf
#基础路径。用于保存storage_server基础数据内容和日志内容的目录。
base_path=/home/yuqing/fastdfs -> base_path=/var/data/fastdfs-storage/base
#存储路径。是用于保存FastDFS中存储文件的目录,就是要创建256*256个子目录的位置。base_path和store_path0可以使用同一个目录。
store_path0=/home/yuqing/fastdfs -> store_path0=/var/data/fastdfs-storage/store
#跟踪服务器位置。就是跟踪服务器的ip和端口。
tracker_server=192.168.150.11:22122 -> tracker_server=tracker服务IP:22122
启动服务
/etc/init.d/fdfs_storaged start
启动成功后,配置文件中base_path指向的目录中出现FastDFS服务相关数据目录(data目录、logs目录)
配置文件中的store_path0指向的目录中同样出现FastDFS存储相关数据录(data目录)
其中$store_path0/data/目录中默认创建若干子孙目录(两级目录层级总计256*256个目录),是用于存储具体文件数据的。
Storage服务器启动比较慢,因为第一次启动的时候,需要创建256*256个目录。

Client服务

修改配置文件
cd /etc/fdfs
cp client.conf.sample client.conf
vi /etc/fdfs/client.conf
#客户端命令行执行过程时临时数据存储位置。
base_path=/home/yuqing/fastdfs -> base_path=/fastdfs/client
tracker_server=192.168.150.11:22122 -> tracker_server=tracker服务IP:22122

上传文件

/usr/local/bin/fdfs_upload_file /etc/fdfs/client.conf /要上传的文件

上传结束后,返回group1/M00/00/00/xxxxxxxxxx.xxx,检查storage服务结点中的$store_path0/data/00/00/目录中是否有上传的文件(一般情况上传的文件按顺序保存在$store_path0/data/00/00/目录中,不能完全保证)。
上传文件结果:group1/M00/00/00/wKiWDV0xfqWAFe1OAAAib-i5DLU637.log
* 组名:group1文件上传后所在的storage组名称,在文件上传成功后有storage服务器返回,需要客户端自行保存。
* 虚拟磁盘路径:M00 storage配置的虚拟路径,与磁盘选项store_path*对应。如果配置了store_path0则是M00,如果配置了store_path1则是M01,以此类推。
* 数据两级目录:/00/00 storage服务器在每个虚拟磁盘路径下创建的两级目录,用于存储数据文件。
* 文件名:wKiWDV0xfqWAFe1OAAAib-i5DLU637.log

删除文件

/usr/bin/fdfs_delete_file /etc/fdfs/client.conf group1/M00/00/00/wKiWDV0xfqWAFe1OAAAib-i5DLU637.log

Nginx组件

如果FastDFS中保存的是图片信息。希望在WEB应用中可以直接访问FastDFS中的图片进行显示。如果操作?
安装Nginx是为了WEB应用中可以使用HTTP协议直接访问Storage服务中存储的文件。在storage结点所在服务器安装Nginx组件。
需要安装两部分内容。
Nginx应用,在安装nginx应用的时候,同时要在nginx中增加一个FastDFS的组件。

fastdfs-nginx-module模块

上传并解压
tar -zxf fastdfs-nginx-module_v1.16.tar.gz
修改配置文件
vi /usr/local/fastdfs/fastdfs-nginx-module/src/config
CORE_INCS="$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon/"
编译安装Nginx
./configure --prefix=/usr/local/tengine --add-module=/root/fastdfs-nginx-module/src/  
make && make install
配置fastdfs-nginx-module
#拷贝配置文件
cp /root/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs/

#修改配置文件 mod_fastdfs.conf
tracker_server=192.168.2.109:22122 
url_have_group_name = true 
store_path0=/var/data/fastdfs-storage/store 
拷贝http服务需要的配置
复制FastDFS安装包中的两个配置文件(http.conf和mime.types   /fastdfs-master/conf)到/etc/fdfs目录中
创建网络访问存储服务的软连接
在上传文件到FastDFS后,FastDFS会返回group1/M00/00/00/xxxxxxxxxx.xxx。其中group1是卷名,在mod_fastdfs.conf配置文件中已配置了url_have_group_name,以保证URL解析正确。
而其中的M00是FastDFS保存数据时使用的虚拟目录,需要将这个虚拟目录定位到真实数据目录上。
ln -s /var/data/fastdfs-storage/store/data/ /var/data/fastdfs-storage/store/data/M00
修改Nginx配置文件
location ~ /group([0-9])/M00 {
    ngx_fastdfs_module;
}      
指定下载文件的名称
#需要指定下载的文件名的话,在nginx配置文件中增加下面配置,并且,http请求增加filename=xxx   
#示例:http://localhost:8090/.../../..?filename=123.png
add_header Content-Disposition "attachment;filename=$arg_attname";
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值