fdfs用于分布式文件存储,同组间的存储节点可以起到冗余备份的作用。借助于nginx,使用户可以直接访问文件,提供web服务。借助于fdht可以实现去重的作用。
本章节只讲述fdfs的安装配置,即nginx服务的搭建。
1、下载所需软件
fdfs相关文件下载地址(libfastcommon、fastdfs、fastdfs-nginx-module)
https://github.com/happyfish100
nginx1.8下载地址:http://nginx.org/download/nginx-1.8.1.tar.gz
2、安装及启动fdfs
2.1 安装libfastcommon
解压libfastcommon-mast.zip
unzip libfastcommon-master.zip
cd libfastcommon-master
当我们此目录并执行 make.sh 文件时,会提示gcc命令不存在。
那么我们要安装gcc命令:
yum -y install gcc
gcc名称安装成功后,我们再次执行 ./make.sh和 ./make.sh install 命令,则安装成功。
2.2安装fastdfs
解压fastdfs-master.zip
unzip fastdfs-master.zip
cd fastdfs-master
./make.sh
./make.sh install
安装成功后,会在/etc/fdfs目录下生成四个样本文件(client.conf.sample storage.conf.sample storage_ids.conf.sample tracker.conf.sample)
我们把示例文件复制一份,去掉sample
cp storage.conf.sample storage.conf
cp storage_ids.conf.sample storage_ids.conf
cp tracker.conf.sample tracker.conf
2.3配置tracker
创建文件及日志的
vim tracker.conf
比较重要的参数如下:
#绑定本地IP
bind_addr=
#tracker服务端口
port=22122
#文件及日志的存储路径
base_path=/opt/fdfs/tracker
# 0: round robin 轮询
# 1: specify group 指定组
# 2: load balance, select the max free space group to upload file 负载均衡
store_lookup=2
# 0: round robin (default) 轮询
# 1: the first server order by ip address 根据IP排序,选择第一个IP对应的存储节点服务
# 2: the first server order by priority (the minimal) 根据优先级排序,选择第存储节点服务
# Note: if use_trunk_file set to true, must set store_server to 1 or 2 如果开启了合并存储,则必须选择1或2
store_server=0
..............
#使用storage_ids.conf文件配置存储节点\组别\IP\节点ID
use_storage_id = true
2.4 配置storage_ids.conf
vi storage_ids.conf
100001 group1 IP地址
2.5 配置storage
mkdir -p /opt/fdfs/storage/data
主要参数如下:
#当前storage服务IP
bind_addr=
#stroage服务的数据及日志地址
base_path=/opt/fdfs/storage
#文件存储路径
store_path0=/opt/fdfs/storage/data
#跟踪器服务地址
tracker_server=192.168.209.121:22122
启动tracker服务及storage服务:
service fdfs_trackerd start
service fdfs_storaged start
2.6校验
fdfs_monitor storage.conf
3、fdfs+nginx
安装nginx及fastdfs-nginx-module
解压fastdfs-nginx-module:.unzip fastdfs-nginx-module-master.zip
解压nginx: tar zxvf nginx-1.8.1.tar.gz
cd nginx-1.8.1
yum -y install zlib zlib-devel
yum -y install openssl openssl-devel
创建nginx安装目录:mkdir -p /usr/local/nginx
指定安装目录并添加fast模块
./configure --prefix=/usr/local/nginx --add-module=/home/tools/fdfs/fastdfs-nginx-module-master/src
make
make install
至此,nginx安装成功!
在目录/home/tools/fdfs/fastdfs-master/conf下执行命令:
cp http.conf /etc/fdfs/
cp mime.types /etc/fdfs/
cp anti-steal.jpg /etc/fdfs/
同时把fastdfs-nginx模块的配置文件复制到/etc/fdfs下
cp /home/tools/fdfs/fastdfs-nginx-module-master/src/mod_fastdfs.conf /etc/fdfs/
vim mod_fastdfs.conf
主要参数如下:
use_storage_id = true
storage_ids_filename = storage_ids.conf
store_path_count=1
store_path0=/opt/fdfs/storage/data
group_count = 1
[group1]
group_name=group1
storage_server_port=23000
store_path_count=1
store_path0=/opt/fdfs/storage/data
url_have_group_name =true
配置nginx:
vi nginx.conf
添加服务如下:
server{
listen 9999;
server_name localhost;
location ~/group[0-9]+/M00{
ngx_fastdfs_module;
}
}
启动nginx:/usr/local/nginx/sbin/nginx
测试上传文件:fdfs_test storage.conf upload anti-steal.jpg
上传成功打印日志如下:
[root@SIT-BJ-Ser04 fdfs]# fdfs_test storage.conf upload anti-steal.jpg
This is FastDFS client test program v5.11
Copyright (C) 2008, Happy Fish / YuQing
FastDFS may be copied only under the terms of the GNU General
Public License V3, which may be found in the FastDFS source kit.
Please visit the FastDFS Home Page http://www.csource.org/
for more detail.
[2017-08-04 11:58:18] DEBUG - base_path=/opt/fdfs/storage, connect_timeout=30, network_timeout=60, tracker_server_count=1, anti_steal_token=0, anti_steal_secret_key length=0, use_connection_pool=0, g_connection_pool_max_idle_time=3600s, use_storage_id=0, storage server id count: 0
tracker_query_storage_store_list_without_group:
server 1. group_name=, ip_addr=10.80.103.63, port=23000
group_name=group1, ip_addr=10.80.103.63, port=23000
storage_upload_by_filename
group_name=group1, remote_filename=M00/00/00/ClBnP1mD8NqAe-VeAABdrZgsqUU923.jpg
source ip address: 10.80.103.63
file timestamp=2017-08-04 11:58:18
file size=23981
file crc32=2553063749
example file url: http://10.80.103.63/group1/M00/00/00/ClBnP1mD8NqAe-VeAABdrZgsqUU923.jpg
storage_upload_slave_by_filename
group_name=group1, remote_filename=M00/00/00/ClBnP1mD8NqAe-VeAABdrZgsqUU923_big.jpg
source ip address: 10.80.103.63
file timestamp=2017-08-04 11:58:18
file size=23981
file crc32=2553063749
example file url: http://10.80.103.63/group1/M00/00/00/ClBnP1mD8NqAe-VeAABdrZgsqUU923_big.jpg
访问地址:http://10.80.103.63:9999/group1/M00/00/00/ClBnP1mD8NqAe-VeAABdrZgsqUU923_big.jpg
如果访问不了,记得检查防火墙是否关闭,或把对应接口添加到防火墙。
到此为止!