什么是FastDFS
FastDFS 是用 c 语言编写的一款开源的分布式文件系统。FastDFS 为互联网量身定制, 充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标,使用 FastDFS 很容易搭建一套高性能的文件服务器集群提供文件上传、下载等服务
Tracker server 进行文件的调度
Storage server 完成文件的上传和下载
特点:同样内容的文件 只储存一次,返回同一个Hash(哈希)值
环境:centos
FastDFS是C语言开发,安装FastDFS需要先将官网下载的源码进行编译,编译依赖gcc环境,如果没有gcc环境,需要安装gcc
yum install -y gcc gcc-c++
若安装了桌面图形界面,就不需要安装;FastDFS依赖libevent
yum -y install libevent
FastDFS 依赖包 Github地址
unzip libfastcommon-master.zip
进入目录,执行编译
unzip libfastcommon-master.zip
./make.sh
安装
./make.sh install
libfastcommon安装好后会在/usr/lib64 目录下生成 libfastcommon.so 库文件
cd /usr/lib64/
ls | grep libfastcommon.so #查看是否含有
注意:由于FastDFS程序引用usr/lib目录所以需要将/usr/lib64下的库文件拷贝至/usr/lib下
有的话,不需要此步骤
cp libfastcommon.so /usr/lib
FastDFS 开源Github
yum install unzip, zip
unzip fastdfs-master.zip
编译
cd fastdfs-master
./make.sh
安装
./make.sh install
备份样例配置文件
cp /etc/fdfs/tracker.conf.sample /etc/fdfs/tracker.conf
自定义一个保存数据和日志的文件夹
地址为: /home/mikowoo/fastdfs/tracker
cd /home/mikowoo
mkdir fastdfs
cd fastdfs
mkdir tracker
vim /etc/fdfs/tracker.conf
修改配置文件,将数据与日至保存到 自定义文件夹中
base_path=/home/mikowoo/fastdfs/tracker
备份存储样例配置
cp /etc/fdfs/storage.conf.sample /etc/fdfs/storage.conf
自定义存储路径 /home/mikowoo/fastdfs/storage
修改配置文件内容
vim
base_path=/home/mikowoo/fastdfs/storage
store_path0=/home/mikowoo/fastdfs/storage
#如果有多个挂载磁盘则定义多个store_path,如下
#store_path1=.....
#store_path2=......
tracker_server=192.168.50.91:22122 # 本机IP 不能是 127.0.0.1
# 这个storage 是哪个 tracker 管理的对应 哪个IP
启动两个服务器
service fdfs_trackerd start
service fdfs_storaged start
cp /etc/fdfs/client.conf.sample /etc/fdfs/client.conf
vim /etc/fdfs/client.conf
修改内容
base_path=/home/mikowoo/fastdfs/tracker
tracker_server=192.168.50.91:22122 # 本机IP 不能是 127.0.0.1
进入上传文件目录,上传文件
fdfs_upload_file /etc/fdfs/client.conf Spring.png
返回 group1/M00/00/00/wKgyW11WeLCAZIHrAABkZwGFfSA241.png
成功
Ubuntu 启动遇到的异常
Failed to start fdfs_trackerd.service: Unit fdfs_trackerd.service not found
用如下命令启动
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf start
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf start
查看进程
ps aux | grep fdfs
centos 安装
Nginx 可以理解为 Web 服务器
下载地址
Github下载
解压这两个文件
tar -zxvf nginx-1.8.1.tar.gz
unzip fastdfs-nginx-module-master.zip
进入 Nginx 解压后文件夹
cd nginx-1.8.1
填写配置信息,安装地址 /usr/local/nginx/
./configure --prefix=/usr/local/nginx/ --add-module=/home/mikowoo/Downloads/fastdfs-nginx-module-master/src
./configure: error: the HTTP rewrite module requires the PCRE library.
You can either disable the module by using --without-http_rewrite_module
option, or install the PCRE library into the system, or build the PCRE library
statically from the source with nginx by using --with-pcre= option
yum -y install pcre-devel
./configure: error: the HTTP gzip module requires the zlib library.
You can either disable the module by using --without-http_gzip_module
option, or install the zlib library into the system, or build the zlib library
statically from the source with nginx by using --with-zlib= option.
yum -y install zlib-devel
编译,当前目录地址 nginx_1.8.1
make
安装
shell install
配置文件
cp fastdfs-nginx-module-master/src/mod_fastdfs.conf /etc/fdfs/mod_fastdfs.conf
vim /etc/fdfs/mod_fastdfs.conf
network_timeout=10
tracker_server=192.168.50.91:22122
url_have_group_name = true
store_path0=/home/mikowoo/fastdfs/storage
进入 fastdfs_master(即FastDFS)
文件目录中
cp conf/http.conf /etc/fdfs/http.conf
cp conf/mime.types /etc/fdfs/mime.types
vim /usr/local/nginx/conf/nginx.conf
添加
user root;
server {
listen 8888;
server_name localhost;
location ~/group[0-9]/ {
ngx_fastdfs_module;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html{
root html;
}
}
启动
/usr/local/nginx/sbin/nginx
/usr/local/nginx/sbin/nginx -s stop # 停止
/usr/local/nginx/sbin/nginx -s reload # 重启
上传一张图
测试访问,是否显示图片
http://127.0.0.1:8888/group1/M00/00/00/wKgyW11aVEaAP_B0AABkZwGFfSA484.png