准备阶段
准备linux服务器或虚拟机
Tracker 和 Storage 安装在一台机器上
下载需要的安装包并上传到linux服务器目录下
FastDFS下载地址:https://github.com/happyfish100
Tengine下载地址:http://tengine.taobao.org/
安装FastDFS依赖
FastDFS是C语言开发的应用。安装必须使用make、cmake和gcc编译器。
yum install -y make cmake gcc gcc-c++
安装FastDFS核心库
解压上传的llibfastcommon-1.0.43.tar.gz,然后将libfastcommon-1.0.43移动到 /usr/local/fastdfs目录下
进入到/usr/local/fastdfs/libfastcommon-1.0.43目录下
编译
./make.sh
安装
./make.sh install
默认安装位置在/usr/lib64和/usr/include/fastcommon两个目录中。
创建软连接
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主程序安装
解压fastdfs-6.06.tar.gz文件,并将解压后的fastdfs-6.06文件夹移动到 /usr/local/fastdfs/
tar -zxvf fastdfs-6.06.tar.gz
mv fastdfs-6.06 /usr/local/fastdfs/
编译安装
进入到/usr/local/fastdfs/fastdfs-6.06 执行
./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 服务配置
修改配置文件
复制一份模板配置文件
cd /etc/fdfs
cp tracker.conf.sample tracker.conf
创建/usr/local/fastdfs/fastdfs-tracker文件夹
vim tracker.conf
改 base_path 路径,base_path FastDFSTracker启动后使用的根目录,用来存放Tracker data和logs
base_path=/usr/local/fastdfs/fastdfs-tracker
启动Tracker
/etc/init.d/fdfs_trackerd start
启动成功后,配置文件中base_path指向的目录中出现FastDFS服务相关数据目录(data目录、logs目录)
查看服务状态
ps -ef | grep fdfs
停止服务
/etc/init.d/fdfs_trackerd stop
重启服务
/etc/init.d/fdfs_trackerd restart
Storage 服务
配置文件
cd /etc/fdfs
cp storage.conf.sample storage.conf
mkdir -p /usr/local/fastdfs/fastdfs-storage/base
mkdir -p /usr/local/fastdfs/fastdfs-storage/store
修改storage.conf配置文件
vim storage.conf
base_path=/usr/local/fastdfs/fastdfs-storage/base
store_path0=/usr/local/fastdfs/fastdfs-storage/store
tracker_server=192.168.152.139:22122
启动服务
要求tracker服务必须已启动
/etc/init.d/fdfs_storaged start
启动成功后,配置文件中base_path指向的目录中出现FastDFS服务相关数据目录(data目录、logs目录)
配置文件中的store_path0指向的目录中同样出现FastDFS存储相关数据录(data目录)
其中$store_path0/data/目录中默认创建若干子孙目录(两级目录层级总计256*256个目录),是用于存储具体文件数据的。
Storage服务器启动比较慢,因为第一次启动的时候,需要创建256*256个目录。
查看服务状态
/etc/init.d/fdfs_storaged status
停止服务
/etc/init.d/fdfs_storaged stop
重启服务
/etc/init.d/fdfs_storaged restart
配置Client端
修改配置文件
cd /etc/fdfs
cp client.conf.sample client.conf
mkdir -p /usr/local/fastdfs/fastdfs-client
client.conf配置文件中主要描述客户端的行为,需要进行下述修改:
vim client.conf
base_path= /usr/local/fastdfs/fastdfs-client
tracker_server=192.168.152.1398:22122
base_path - 就是客户端命令行执行过程时临时数据存储位置。
校验整合
FastDFG的东西都已安装完成,最后我们还要确定一下,storage是否注册到了tracker中去
/usr/bin/fdfs_monitor /etc/fdfs/storage.conf
测试上传文件
在根目录下上传一个123.jpg用作测试上传文件
/usr/bin/fdfs_upload_file /etc/fdfs/client.conf /123.jpg
上传结束后,返回group1/M00/00/00/xxxxxxxxxx.xxx,检查storage服务结点中的$store_path0/data/00/00/目录中是否有上传的文件(一般情况上传的文件按顺序保存在$store_path0/data/00/00/目录中,不能完全保证)。
上传文件结果:group1/M00/00/00/wKiYi16K6NOATtArAAF3eLG6Dmw260.jpg
测试删除文件
/usr/bin/fdfs_delete_file /etc/fdfs/client.conf group1/M00/00/00/wKiYi16K6NOATtArAAF3eLG6Dmw260.jpg
Nginx组件
如果FastDFS中保存的是图片信息。希望在WEB应用中可以直接访问FastDFS中的图片进行显示。如果操作?
安装Nginx是为了WEB应用中可以使用HTTP协议直接访问Storage服务中存储的文件。在storage结点所在服务器安装Nginx组件。
需要安装两部分内容。
Nginx应用,在安装nginx应用的时候,同时要在nginx中增加一个FastDFS的组件。
fastdfs-nginx-module模块
解压fastdfs-nginx-module-1.22.tar.gz,并把解压后的文件夹移动到/usr/local/fastdfs/
tar -zxvf fastdfs-nginx-module-1.22.tar.gz
mv fastdfs-nginx-module-1.22 /usr/local/fastdfs/
修改配置
vim /usr/local/fastdfs/fastdfs-nginx-module-1.22/src/config
CORE_INCS="$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon"
编译安装Nginx
cd /usr/local/fastdfs/installpackage/tengine-2.3.2
./configure --prefix=/usr/local/tengine --add-module=/usr/local/fastdfs/fastdfs-nginx-module-1.22/src/
make && make install
配置fastdfs-nginx-module
拷贝配置文件
cd /usr/local/fastdfs/fastdfs-nginx-module-1.22/src
cp mod_fastdfs.conf /etc/fdfs/
修改配置文件 mod_fastdfs.conf
tracker_server=192.168.152.139:22122
url_have_group_name = true
store_path0=/usr/local/fastdfs/fastdfs-storage/store
路径和storage中的store_path0路径必须相同
拷贝http服务需要的配置
复制FastDFS安装包中的两个配置文件(http.conf和mime.types)到/etc/fdfs目录中
/usr/local/fastdfs/fastdfs-6.06/conf
cp http.conf /etc/fdfs/
cp mime.types /etc/fdfs/
创建网络访问存储服务的软连接
在上传文件到FastDFS后,FastDFS会返回group1/M00/00/00/xxxxxxxxxx.xxx。其中group1是卷名,在mod_fastdfs.conf配置文件中已配置了url_have_group_name,以保证URL解析正确。
而其中的M00是FastDFS保存数据时使用的虚拟目录,需要将这个虚拟目录定位到真实数据目录上。
ln -s /usr/local/fastdfs/fastdfs-storage/store/data/ /usr/local/fastdfs/fastdfs-storage/store/data/M00
修改nginx配置文件
location ~ /group([0-9])/M00 {
ngx_fastdfs_module;
}
访问地址即可打开或下载文件
http://192.168.152.139/group1/M00/00/00/wKiWC10xxc6AfHCKAAAib-i5DLU543_big.log
下载文件时指定文件名添加
正在ngx_fastdfs_module;前面加上面下这个配置
add_header Content-Disposition "attachment;filename=$arg_attname";
本文暂时没有评论,来添加一个吧(●'◡'●)