简介: fastDFS架构包括 Tracker server和Storage server。客户端请求Tracker server进行文件上传、下载,通过Trackerserver调度最终由Storage server完成文件上传和下载。
FastDFS原理简介
Trackerserver作用是负载均衡和调度,通过Trackerserver在文件上传时可以根据一些策略找到Storageserver提供文件上传服务。可以将tracker称为追踪服务器或调度服务器。
Storageserver作用是文件存储,客户端上传的文件最终存储在Storage服务器上,Storage server没有实现自己的文件系统而是利用操作系统 的文件系统来管理文件。可以将storage称为存储服务器。
通信原理
文件上传
FastDFS搭建
下载
下载的包都存放在/software/目录下。
下载libfastcommon、fastdfs、fastdfs-nginx-module:
cd /software/
wget https://github.com/happyfish100/libfastcommon/archive/V1.0.39.tar.gz -SO libfastcommon.tar.gz
wget https://github.com/happyfish100/fastdfs/archive/V5.11.tar.gz -SO fastdfs.tar.gz
wget https://github.com/happyfish100/fastdfs-nginx-module/archive/V1.20.tar.gz -SO fastdfs-nginx-module.tar.gz
解压
tar -zxf fastdfs.tar.gz
tar -zxf fastdfs-nginx-module.tar.gz
tar -zxf libfastcommon.tar.gz
安装
1、安装基础包
yum install gcc-c++ libevent -y
2、安装libfastcommon
cd libfastcommon-1.0.39
./make.sh
./make.sh install
3、安装fastdfs
cd fastdfs-5.11
./make.sh
./make.sh install
安装好后,程序是在/usr/bin目录下:
which fdfs_trackerd
而配置文件是在/etc/fdfs目录下:
ls /etc/fdfs
client.conf.sample storage_ids.conf.sample tracker.conf.sample storage.conf.sample
但是这些配置文件是不全的,而且都是模板,所以需要从fastdfs包中拷贝过来,并修改配置:
拷贝文件到/etc/fdfs
cd /software/fastdfs-5.11/conf
cp /software/fastdfs-5.11/conf/* /etc/fdfs
cp /software/fastdfs-nginx-module-1.20/src/mod_fastdfs.conf /etc/fdfs
修改配置文件
一、修改tracker.conf
**1、tracker.conf **
vim /etc/fdfs/tracker.conf
2、修改说明
base_path=/software/fastdfs-5.11
和nginx监听端口保持一致
http.server_port=80
二修改storage.conf
1、storage.conf
vim /etc/fdfs/storage.conf
2、修改说明
base_path=/software/fastdfs-5.11/storage
store_path0=/software/fastdfs-5.11/storage
tracker_server=本机的IP:22122:22122
三修改client.cnf
1、client.cnf
vim /etc/fdfs/client.cnf
2、修改说明
base_path=/software/fastdfs-5.11/tracker
和nginx监听端口保持一致
http.tracker_server_port=80
tracker_server=本机的IP:22122
四修改mod_fastdfs.conf
1、mod_fastdfs.conf
vim /etc/fdfs/mod_fastdfs.conf
2、修改说明
tracker_server=本机的IP:22122
url_have_group_name = true
store_path0=/software/fastdfs-5.11/storage
启动命令
启动tracker和storage
/etc/init.d/fdfs_trackerd start
/etc/init.d/fdfs_storaged start
测试文件上传
测试
fdfs_test /etc/fdfs/client.conf upload /software/fastdfs-5.11/INSTALL
FastDFS 整合 Nginx
安装Nginx
1、下载Nginx
wget http://nginx.org/download/nginx-1.6.2.tar.gz
2、解压
tar -zxvf nginx-1.6.2.tar.gz
3、安装依赖
# 先安装gcc-c++编译器
yum install gcc-c++
yum install -y openssl openssl-devel
# 安装pcre包
yum install -y pcre pcre-devel
# 安装zlib包
yum install -y zlib zlib-devel
4、编译安装 Nginx(添加 fastdfs-nginx-module 模块)
4.1 修改 fastdfs-nginx-module 的 config 配置文件
修改如下两项,不修改编译nginx可能会报错
# cd /software/fastdfs-nginx-module-1.20/src
# vi config
ngx_module_incs="/usr/include/fastdfs /usr/include/fastcommon/"
CORE_INCS="$CORE_INCS /usr/include/fastdfs /usr/include/fastcommo"
4.2 添加 fastdfs-nginx-module 模块
# ./configure --add-module=/software/fastdfs-nginx-module-1.20/src
# make && make install
4.3 创建软连接
ln -s /software/fastdfs-5.11/storage/data/ /software/fastdfs-5.11/storage/data/M00
4.4 配置nginx
vim /usr/local/nginx/conf/nginx.conf
配置如下配置
location ~/group1/M00 {
root /software/fastdfs-5.11/storage/data/;
ngx_fastdfs_module;
}
4.5 Nginx 启动命令
# 启动
/usr/local/nginx/sbin/nginx -s start
# 关闭
/usr/local/nginx/sbin/nginx -s stop
# 重启
/usr/local/nginx/sbin/nginx -s reload
测试FastDfs文件上传
测试
test.jpeg 是我放到服务器上的一个图片
fdfs_test /etc/fdfs/client.conf upload test.jpeg
以上安装完毕。