1、环境准备
- Centos7.x 两台,分别安装tracker与storage
- 下载安装包:
- libfatscommon:FastDFS分离出的一些公用函数包
- FastDFS:FastDFS本体
- fastdfs-nginx-module:FastDFS和nginx的关联模块
- nginx:发布访问服务
2、安装步骤 (tracker与storage都要执行)
- 安装基础环境
yum install -y gcc gcc-c++
yum -y install libevent
- 安装libfatscommon函数库
#解压
tar -zxvf libfastcommon-1.0.42.tar.gz
- 进入libfastcommon文件夹,编译并且安装
./make.sh
./make.sh install
安装的目录从控制台看一下:
- 安装fastdfs主程序文件
# 解压
tar -zxvf fastdfs-6.04.tar.gz
进入到fastdfs目录,查看fastdfs安装配置
cd fastdfs-6.04/
vim make.sh
TARGET_PREFIX=$DESTDIR/usr
TARGET_CONF_PATH=$DESTDIR/etc/fdfs
TARGET_INIT_PATH=$DESTDIR/etc/init.d
安装fastdfs
./make.sh
./make.sh install
3、配置tracker服务
- 说明:tracker和storage都是同一个fastdfs的主程序的两个不同概念,配置不同的配置文件就可以设定为tracker或者storage
- 配置tracker
/etc/fdfs 下都是一些配置文件,配置tracker即可,没有的化复制一份sample
- 修改tracker配置文件,此为tracker的工作目录,保存数据以及日志
base_path=/usr/local/fastdfs/tracker
mkdir /usr/local/fastdfs/tracker -p
- 启动tracker服务
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf
检查进程如下:
ps -ef|grep tracker
- 停止tracker
/usr/bin/stop.sh /etc/fdfs/tracker.conf
4、配置storage服务
- 修改storage配置文件
- 修改该storage.conf配置文件,没有的化也复制一份sample
# 修改组名
group_name=imooc
# 修改storage的工作空间
base_path=/usr/local/fastdfs/storage
# 修改storage的存储空间
store_path0=/usr/local/fastdfs/storage
# 修改tracker的地址和端口号,用于心跳
tracker_server=192.168.1.153:22122
# 后续结合nginx的一个对外服务端口号
http.server_port=8888
- 创建目录
mkdir /usr/local/fastdfs/storage -p
- 启动storage
前提:必须首先启动tracker
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf
检查进程如下:
ps -ef|grep storage
- 测试上传
- 修改client.conf文件
base_path=/usr/local/fastdfs/client #需要创建
tracker_server=192.168.1.153:22122
- 下载一个文件
#下载
wget url
#转移文件到home
mv content3.1.jpg /home/
# 重命名
mv content3.1.jpg imooc.jpg
- 上传
/usr/bin/fdfs_test /etc/fdfs/client.conf upload imooc.jpg
5、配置 nginx fastdfs 实现文件服务器
- 引子
fastdfs安装好以后是无法通过http访问的,这个时候就需要借助nginx了,所以需要安装fastdfs的第三方模块到nginx中,就能使用了。
注:nginx需要和storage在同一个节点。
- 安装nginx插件
- 解压nginx的fastdfs压缩包
tar -zxvf fastdfs-nginx-module-1.22.tar.gz
- 修改/fastdfs-nginx-module/src/config文件,主要是修改路径,把全部local 删除,因为fastdfs安装的时候我们没有修改路径
- 将nginx插件配置文件mod_fastdfs.conf拷贝到/etc/fdfs/下
cp mod_fastdfs.conf /etc/fdfs
- 安装nginx直至以下步骤(安装过程查看linux安装nginx)
- 将插件模块加载到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=/home/software/FastDFS/fastfds-nginx-module-1.22/src
- 修改mod_fastdfs.conf
base_path=/usr/local/fastdfs/tmp #需要创建
store_path0=/usr/local/fastdfs/storage
tracker_server=192.168.1.153:22122
group_name=imooc
url_have_group_name=true
- nginx配置文件配置如下
- 启动nginx
- 测试(关闭防火墙)
#在该目录可查看之前上传的文件
cd /usr/local/fastdfs/storage/data/00/00/
输入如:http://192.168.0.151:8888/imooc/M00/00/00/wKgAl2G_O-CAUpkkAAQZxs6Uo-4899.jpg查看
6、可能遇到的问题
在测试时遇到问题可去/var/log/nginx下,使用tail -f error.log命令查看
- 如果报ERROR - file:ini_file_reader.c,line:315,include file “http.conf” not find
解决办法:切换到安装的FastDFS下的conf目录,将http.conf和mine.types文件复制到/etc/fdfs/下,重新启动nginx即可解决!