导语:
上一篇我们简单说了一下项目中文件的上传和下载中存在的问题以及针对这些问题的解决方案演变。之后介绍了一下目前使用比较多的解决方案-分布式文件系统FastDFS。FastDFS使用上并不是很麻烦,但是FastDFS文件服务器的搭建过程是比较繁琐的。接下来说一下如何在一台服务器上搭建FastDFS。
一、FastDFS的安装:
安装前的准备:
1、准备一台服务器(我这里是172.27.2.103)。
准备如下图的软件包:
搭建FastDFS之前,我们需要先安装C的编译器,因为Fast是C编写的,所以需要先安装,我的服务器里面已经装好,没有的请先安装C的编译器gcc。
安装gcc命令:
yum install make cmake gcc gcc-c++
2、安装libfastcommon
1、上传libfastcommonV1.0.7.tar.gz文件,这里我上传到了/ly目录下
2、解压libfastcommonV1.0.7.tar.gz
命令:tar -zxvf libfastcommonV1.0.7.tar.gz -C /usr/local/fast
3、进入目录cd /usr/local/fast/libfastcommon-1.0.7/
4、编译和安装
编译:./make.sh
安装:./make.sh install从上图可以看出,libfastcommon默认安装到了/usr/lib64/这个位置。
5、进行核心文件的软连接创建(该步也是我以前学习的时候别人这么做的,后来就一直这么做了,如果对FastDFS安装比较了解也可以按照自己的方 式来做)。
因为FastDFS的主程序的目录设置的是/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
3、安装FastDFS
1、进入/ly目录下,解压FastDFS_v5.05.tar.gz
进入命令:cd /ly
解压命令:tar -zxvf FastDFS_v5.05.tar.gz -C /usr/local/fast/
进入目录查看如图多出FastDFS文件夹
2、编译安装
进入命令:cd /usr/local/fast/FastDFS/
编译命令:./make.sh
安装命令:./make.sh install
如图所示:注意mkdir 创建的目录
3、文件说明
服务脚本在:
/etc/init.d/fdfs_storaged
/etc/init.d/fdfs_trackerd
配置文件在:
/etc/fdfs/client.conf.sample
/etc/fdfs/storage.conf.sample
/etc/fdfs/tracker.conf.sample
命令行工具在/usr/bin/目录下Fdfs_开头的一系列执行脚本
4、修改FastDFS执行脚本所在路径。
因为FastDFS服务脚本中设置的执行脚本所在路径为:/usr/local/bin/,但是我们的执行脚本在/usr/bin/目录下,所以我们要修改服务脚本/etc/init.d/fdfs_storaged和/etc/init.d/fdfs_trackerd两个文件里面配置的执行脚本路径。
命令:vim/etc/init.d/fdfs_storaged
进行全局替换命令:%s+/usr/local/bin+/usr/bin
命令:vim/etc/init.d/fdfs_trackerd
进行全局替换命令:%s+/usr/local/bin+/usr/bin
4、配置Tracker
1、进入目录:cd /etc/fdfs/
2、修改文件
修改命令:
vim/etc/fdfs/tracker.conf
修改base_path=/fastdfs/tracker(这里是我提前创建好的目录,随意)
3、启动Tracker
如图所示:启动成功后会在/fastdfs/tracker目录下生成data和logs目录
5、配置storage
1、与配置Tracker一样,首先进入目录:cd /etc/fdfs/并复制一份
2、修改storage.conf文件
跟修改Tracker.conf文件不同,这次我们需要修改四项内容。
base_path=/fastdfs/storage(这个需要我们提前创建)
store_path0=/fastdfs/storage
tracker_server=172.27.2.103:22122(这里配的是Tracker的IP地址)
http.server_port=8888
3、启动storage
如图所示:启动成功后会在/fastdfs/storage目录下生成data和logs目录
4、查看启动是否成功
到这里我的FastDFS环境搭建结束。如果有没有成功的,可能是那个步骤出现问题,建议按照我的步骤一步一步进行。
测试FastDFS
1、这里我们使用客户端命令来上传一个文件。
注意:以前我学习的时候是在两台服务器上搭建的,如果你们也是吧tracker和storage分开到两台服务器上,那么上传文件一定要在tracker这台服务器上上传。
首先使用cd命令进入目录/etc/fdfs/之后复制一份client.conf.sample文件。
2、修改client.conf文件
修改为如图所示:
base_path=/fastdfs/tracker
tracker_server=172.27.2.103:22122
3、上传文件
进入执行文件所在位置cd/usr/bin/
使用命令fdfs_upload_file进行上传文件的操作
4、上传前先进入/fastdfs/storage/data/00/00里面应该是什么都没有
5、上传文件
使用/usr/bin/fdfs_upload_file /etc/fdfs/client.conf /ly/FastDFS_v5.05.tar.gz上传文件
我们看到生成了一个下面的地址:group1/M00/00/00/rBsCZ1qeWhSALtlBAAVFOL7FJU4.tar.gz这个就是上篇文章我们提到的文件ID
6、再次进入/fastdfs/storage/data/00/00发现上传的东西已经在里面
测试成功
到这里我们已经在成功在单台服务器搭建了FastDFS环境,并通过测试,但是我们如何通过http请求进行访问?这里需要与Nginx进行整合。接下来说一下与nginx的整合。
二、整合nginx服务器
1、安装前的准备。
安装nginx之前同样需要准备好环境。nginx也是C语言开发,因此同样需要gcc,还需要安装pcre,因为nginx的http模块需要用到pcre,还需要zlib,它提供了解压缩,还需要openssl,如果环境中没有这些需要提前装好。
yum install gcc-c++
yuminstall -y pcre pcre-devel
yuminstall -y zlib zlib-devel
yuminstall -y openssl openssl-devel
2、nginx的安装
解压:tar -zxvf nginx-1.8.0.tar.gz
进入目录:cd nginx-1.8.0
接下来解压整合包:
命令:tar -zxvf fastdfs-nginx-module_v1.16.tar.gz -C /usr/local/fast/
进入:cdfastdfs-nginx-module/src/
修改配置文件config
vim /usr/local/fast/fastdfs-nginx-module/src/config
将CORE_INCS="$CORE_INCS /usr/local/include/fastdfs /usr/local/include/fastcommon/"修改为CORE_INCS="$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon/"
如图所示:
编译安装nginx:
./configure \
--prefix=/usr/local/nginx \
--pid-path=/var/run/nginx/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--with-http_gzip_static_module \
--http-client-body-temp-path=/var/temp/nginx/client\
--http-proxy-temp-path=/var/temp/nginx/proxy\
--http-fastcgi-temp-path=/var/temp/nginx/fastcgi\
--http-uwsgi-temp-path=/var/temp/nginx/uwsgi\
--http-scgi-temp-path=/var/temp/nginx/scgi \
--add-module=/usr/local/fast/fastdfs-nginx-module/src/
注意:上边将临时文件目录指定为/var/temp/nginx,需要在/var下创建temp及nginx目录
出现如下图标识模块添加成功:
输入命令:make&& make install
复制fastdfs-ngin-module中的配置文件,到/etc/fdfs目录中
cp/usr/local/fast/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs/
修改mod_fastdfs.conf文件
命令:vim/etc/fdfs/mod_fastdfs.conf
修改项:
connect_timeout=10(超时时间)
tracker_server=172.27.2.103:22122(tracker的地址)
url_have_group_name = true
store_path0=/fastdfs/storage(路径配置)
进入目录:cd/usr/local/fast/FastDFS/conf/
复制文件:cp http.conf mime.types /etc/fdfs/
创建软连接:
ln-s /fastdfs/storage/data/ /fastdfs/storage/data/M00
到这里我们整合完毕,接下来只需要修改nginx配置文件即可。
3、修改nginx配置文件
vim /usr/local/nginx/conf/nginx.conf
修改成如图所示:
4、测试FastDFS与nginx的整合
启动nginx:
使用下面链接访问:
http://172.27.2.103:8888/group1/M00/00/00/rBsCZ1qeWhSALtlBAAVFOL7FJU4.tar.gz
出现下面下载的提示证明我们已经测试成功。
到这里,fastDFS在单台服务器上环境的搭建已经成功。下一篇我们说一下在项目中如何通过FastDFS的API操作FastDFS。
领取专属 10元无门槛券
私享最新 技术干货