简述:FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册网站、视频网站等等。
FastDFS为互联网量身定制,充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标,使用FastDFS很容易搭建一套高性能的文件服务器集群提供文件上传、下载等服务。
环境: centos7
安装包:
安装包位置:/usr/local/software
安装准备:关闭防火墙和selinux
安装依赖:yum install pcre-devel zlib zlib-devel openssl openssl-devel make cmake gcc gcc-c++
1.安装 libfastcommon
cd /usr/local/software
unzip libfastcommon-master.zip -d /usr/local/fast/
cd /usr/local/fast/libfastcommon-master/
./make.sh
./make.sh install
创建软连接
FastDFS主程序设置的目录为/usr/local/lib/,所以我们需要创建/ usr/lib64/下的一些核心执行程序的软连接文件
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
2.安装FastDFS
cd /usr/local/software
tar -zxvf FastDFS_v5.05.tar.gz -C /usr/local/fast/
./make.sh
./make.sh install
安装完后,服务脚本位置如下:
配置文件位置如下(划线部分为后续添加)
cd /etc/fdfs
FastDFS一系列执行脚本如下,可以看到有上传文件脚本、下载文件脚本等等
cd /usr/bin/ && ls | grep fdfs
fastDFS服务脚本设置的bin目录为/usr/local/bin/下,但是实际我们安装在了/u sr/bin/下面。所以我们需要修改FastDFS配置文件中的路径,也就是需要修改两个配置文件。
vim /etc/init.d/fdfs_storaged
进入编辑模式
输入 :%s+/usr/local/bin+/usr/bin
输入完之后回车,会提示修改了7处。
保存退出
vim /etc/init.d/fdfs_trackerd
进入编辑模式
输入::%s+/usr/local/bin+/usr/bin
同样会提醒我们修改了7处
保存退出
配置跟踪服务器
进入到/etc/fdfs目录并且复制一份tracker.conf.sample并命名为tracker.conf
cp tracker.conf.sample tracker.conf
修改配置
vim /etc/fdfs/tracker.conf
base_path=/fastdfs/tracker
/fastdfs/tracker目前是不存在的,因此我们需要创建一下该目录
mkdir -p /fastdfs/tracker
在启动tracker之前,/fastdfs/tracker目录下是没有任何文件的
启动tracker,启动完之后,可以看到这个目录下多了两个目录data和logs
/etc/init.d/fdfs_trackerd start
设置开机自启
vim /etc/rc.d/rc.local
/etc/init.d/fdfs_trackerd start
chmod +x /etc/rc.d/rc.local
配置fastdfs存储
cd /etc/fdfs
cp storage.conf.sample storage.conf
vim /etc/fdfs/storage.conf
base_path=/fastdfs/storage
store_path0=/fastdfs/storage
tracker_server=192.168.1.141:22122
http.server_port=8888
创建存储目录
mkdir -p /fastdfs/storage
在启动storage之前,/fastdbf/storage目录下是没有任何文件的
/etc/init.d/fdfs_storaged start
查看FastDFS tracker和storage 是否启动成功,当看到如下所示信息时说明都启动成功了
进入到 /fastdfs/storage/data/目录下,可以看到很多目录
设置开机自启
vim /etc/rc.d/rc.local
/etc/init.d/fdfs_storaged start
测试图片上传
cd /etc/fdfs
cp client.conf.sample client.conf
vim /etc/fdfs/client.conf
base_path=/fastdfs/tracker
tracker_server=192.168.1.141:22122
找到命令的脚本位置,并且使用命令,进行文件的上传
cd /usr/bin/ && ls | grep fdfs
测试文件上传 /usr/bin/fdfs_upload_file /etc/fdfs/client.conf /usr/local/software/3.jpg
可做可不做
2.FastDFS与nginx相结合
先安装nginx
tar -zxvf nginx-1.6.2.tar.gz -C /usr/local/
cd /usr/local/nginx-1.6.2
./configure --prefix=/usr/local/nginx
make && make install
启动nginx
/usr/local/nginx/sbin/nginx
ps -ef | grep nginx
查看是否有进程存在
如果要关闭nginx,我们可以使用如下命令:
/usr/local/nginx/sbin/nginx -s stop
如果想要重新热启动nginx,则使用如下命令:
/usr/local/nginx/sbin/nginx -s reload
3.安装fastdfs-nginxmodule_v1.16.tar.gz(fast与nginx相结合的模块安装包
cd /usr/local/software
tar -zxvf fastdfs-nginx-module_v1.16.tar.gz -C /usr/local/fast/
cd /usr/local/fast/fastdfs-nginx-module/src/
修改该conf文件,我们把文件的第四行配置中的/usr/local/include都改为/usr/include,共两处
vim conf
fastdfs与nginx进行结合,由于我们刚才安装过nginx了,因此在/usr/local目录下已经生成了一个nginx目录了
默认安装地址/usr/local/nginx(如没有,可通过whereis nginx查询或者find / -name nginx
为了将nginx与fastdfs相结合,我们先把这个nginx目录删除掉,
rm -rf nginx
进入到nginx-版本号(1.6.2)/目录下并执行配置和编译安装:
./configure --add-module=/usr/local/fast/fastdfs-nginx-module/src/
make && make install
复制fastdfs-nginx-module中的配置文件,到/etc/fdfs目录中
cp /usr/local/fast/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs/
到 /etc/fdfs/ 目录下,修改我们刚copy过来的mod_fastdfs.conf 文件,需要修改的项如下,其中第一项是超时时长,第三项是允许外界通过http方式访问资源。
connect_timeout=10
tracker_server=192.168.156.13:22122
url_have_group_name = true
store_path0=/fastdfs/storage
复制FastDFS里的2个文件,到/etc/fdfs目录中,如下所示。
修改nginx配置文件
vim nginx.conf
重启下nginx
顺便也把nginx也加入到开机自启(具体操作略)
上传文件或图片
/usr/bin/fdfs_upload_file /etc/fdfs/client.conf /root/0a9a05ab02e9f6cc4641ce1f02b755fc.j
pg
记下返回的地址
group1/M00/00/00/wKgBjVyB-uaAdgK3ABBDTsH8aeI247.jpg
通过http的方式访问我们上传的图片
到此搭建完毕 !!!