FastDFS安装与使用
FastDFS简介
FastDFS服务端有两个角色:
跟踪器(tracker)和存储节点(storage),
跟踪器主要做调度工作,在访问上起负载均衡的作用,
存储节点主要的工作:存储、同步和提供存取接口
整体来说:FastDFS主要有以下两个主要特点
(1)高可靠性:无单点故障;
(2)高吞吐量:只要 Group 足够多,数据流量是足够分散的。
上传文件流程
- client询问tracker可以执行上传操作的storage,不需要附加参数;
- tracker返回一台可用的storage;
- client直接和storage通讯完成文件上传。
下载文件流程
下载文件交互过程:
- client询问tracker下载文件的storage,参数为文件标识(卷名和文件名);
- tracker返回一台可用的storage;
- client直接和storage通讯完成文件下载。
需要说明的是,client为使用FastDFS服务的调用方,client也应该是一台服务器,它对tracker和storage的调用均为服务器间的调用
搭建图片服务器
FastDFS是C语言开发,安装FastDFS需要先从官网下载源码,然后进行编译,但编译依赖gcc环境,如果没有gcc环境,需要安装gcc:
Rpma—>rpmb—>rpmc yum a
yum -y install gcc-c++
FastDFS依赖libevent库,需要安装:
yum -y install libevent
可能遇到的问题:
Another app is currently holding the yum lock; waiting for it to exit…
建议:先等待一段时间,让系统自动解锁。如果长时间没有反应,再采用下面的方案
another app is currently holding the yum lock;waiting for it to exit解决
有时用yum升级一些文件时,会出现以下情况:
another app is currently holding the yum lock;waiting for it to exit...
可以通过强制关掉yum进程:
#rm -f /var/run/yum.pid
然后就可以使用yum了。
上传安装文件
链接:https://pan.baidu.com/s/1B9SVdLeaeB1tklgUvNFD0w 提取码:ln1d
上传到/usr/local目录下
libfastcommon是FastDFS官方提供的,libfastcommon包含了FastDFS运行所需要的一些基础库。
cd /usr/local
tar -zxvf libfastcommonV1.0.7.tar.gz
cd libfastcommon-1.0.7
./make.sh
./make.sh install
注意:libfastcommon安装好后会自动将库文件拷贝至/usr/lib64下,由于FastDFS程序引用usr/lib目录,所以需要将/usr/lib64下的库文件拷贝至/usr/lib下。
要拷贝的文件如下
查找当前目录是否包含指定文件
find -name libfastcommon.so
find /usr/lib -name libfastcommon.so
安装FastDFS_v5.05
tar -zxvf FastDFS_v5.05.tar.gz
cd FastDFS
./make.sh
./make.sh install
安装成功将安装目录下的conf下的文件拷贝到/etc/fdfs/下。(nginx)
安装Tracker服务
配置tracker服务。修改/etc/fdfs /tracker.conf文件
启动tracker。
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf
重启使用命令:
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart
配置开机自启动
将以上命令加入到该配置文件中
vi /etc/rc.d/rc.local
注意:配置完毕之后要将ip设置为静态IP
安装Storage服务
配置storage服务。修改/etc/fdfs /storage.conf文件
–启动storage服务,此处会时间长一些
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf
配置开机自启动
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart
将以上命令加入到该配置文件中
vi /etc/rc.d/rc.local
配置客户端
1- 将/usr/local/FastDFS/client 里面的libfdfsclient.so 拷贝到 /usr/lib 这一步非常重要(nginx)
2、修改配置文件/etc/fdfs/client.conf
3、测试
/usr/bin/fdfs_test /etc/fdfs/client.conf upload /home/hgz/shuai.jpg
安装nginx及nginx插件
nginx需要依赖一些环境
gcc(前面已经安装,所以不用再安装)
yum install gcc-c++
PCRE
yum install -y pcre pcre-devel
zlib
yum install -y zlib zlib-devel
openssl
yum install -y openssl openssl-devel
安装nginx,和nginx插件,两者结合
可以使用官方提供的nginx插件。要使用nginx插件需要重新编译。
fastdfs-nginx-module_v1.16.tar.gz
1、解压插件压缩包
2、修改fastdfs-nginx-module/src/config文件,把其中的local去掉。
3、把fastdfs-nginx-module/src/mod_fastdfs.conf文件复制到/etc/fdfs目录下。并编辑该文件:
4、解压nginx,进入nginx目录
5、对nginx重新config
./configure --add-module=/usr/local/soft/fastdfs-nginx-module/src
6、make
7、make install
注意:nginx默认安装到了/usr/local/nginx目录下,所以接下来要进入此目录中
8、nginx的配置 cd /usr/local/nginx/conf
在nginx的配置文件中添加一个location:
(这里得location 中可能需要添加 root 指向storage存储得目录 到data即可)
9、启动nginx
10、进入/usr/local/nginx/sbin目录
11、[root@localhost sbin]# ./nginx
12、
可以再次上传一张图片,然后根据生成的路径进行访问
关闭防火墙
简单的做法(实验的时候就行)
service iptables stop
/usr/bin/fdfs_test /etc/fdfs/client.conf upload /home/hgz/mei.jpg
example file url: http://192.168.111.139/group1/M00/00/00/wKhvi2BTlDGAWiWUAAABV6Q83Go228_big.png