FastDFS 是一个由 C 语言实现的开源轻量级分布式文件系统,作者余庆,支持 Linux、FreeBSD、AID 等 Unix 系统,解决了大数据存储和读写负载均衡等问题,适合存储 4KB~500MB 之间的小文件,如图片网站、短视频网站、文档、app 下载站等,UC、京东、支付宝、迅雷、酷狗等都有使用。
该软件作者是阿里巴巴大牛、chinaUnix版主余庆个人独立开发的。
首先,我们先来了解一下FastDFS的上传下载流程:
但是只要storage 返回图片的路径图片名称,我们就能通过浏览器来访问图片了?不不不,我们还需要nginx做反向代理。具体过程是这样的:
接下来我们要进行FastDFS–tracker安装
一、 FastDFS安装环境
FastDFS是C语言开发,建议在linux上运行,本教程使用Centos7作为安装环境。
安装gcc 依赖环境
yum install gcc-c++ -y
如果安装redis的时候,可能需要 yum install gcc-c++ -y automake autoconf
这个两个依赖。
如果没有外网:则需要安装本地yum源!{baidu.com}
安装完毕!
2、安装libevent
yum -y install libevent
完成!
3、安装libfastcommon
3.1、上传压缩包文件libfastcommonV1.0.7.tar.gz 到 /usr/local目录下,并解压。
3.2、tar -zxvf libfastcommonV1.0.7.tar.gz
3.3、进入到解压后的文件夹中
3.4、进行编译 ./make.sh
3.5、如果出现编译perl 不识别 运行下面这段命令 – os7
yum -y install zlib zlib-devel pcre pcre-devel gcc gcc-c++ openssl openssl-devel libevent libevent-devel perl unzip net-tools wget
安装 ./make.sh install
注意:libfastcommon安装好后会自动将库文件拷贝至/usr/lib64下,由于FastDFS程序引用usr/lib目录,所以需要将/usr/lib64下的库文件拷贝至/usr/lib下。
cp /usr/lib64/libfastcommon.so /usr/lib/
4、tracker编译安装
4.1、上传资料FastDFS_v5.05.tar.gz到 /usr/local 目录下
4.2、解压编译安装
tar -zxvf FastDFS_v5.05.tar.gz
cd FastDFS
./make.sh
./make.sh install
4.3、安装成功之后,将安装目录下的conf下的文件拷贝到/etc/fdfs/下。
cd conf
cp * /etc/fdfs/
4.4、修改配置文件
vim /etc/fdfs/tracker.conf
4.5、 创建fastdfs文件夹
4.6、
mkdir /opt/fastdfs
5 、设置启动项
mkdir /usr/local/fdfs
拷贝安装目录/usr/local/FastDFS下stop.sh 和restart.sh 到/usr/local/fdfs/
cp restart.sh /usr/local/fdfs/
cp stop.sh /usr/local/fdfs/
修改启动脚本
vim /etc/init.d/fdfs_trackerd
/usr/local/bin --> /usr/bin
将bin换成fdfs 4处
把启动脚本中的路径按照上图修改
修改完毕后
注册服务
[root@localhost FastDFS]# cd /etc/init.d/
[root@localhost init.d]# chkconfig --add fdfs_trackerd
可以使用 chkconfig --list
查看是否已经添加成功!
然后可以用service fdfs_trackerd start
启动测试 如下图
二、FastDFS–storage安装
1 修改配置文件
vim /etc/fdfs/storage.conf
行号:41,109,118
2 创建fdfs_storage文件夹
mkdir /opt/fastdfs/fdfs_storage
3 设置启动服务
vim /etc/init.d/fdfs_storaged
4.注册添加
# cd /etc/init.d/
chkconfig --add fdfs_storaged
chkconfig --list
启动服务
service fdfs_storaged start
5 上传图片测试
FastDFS安装成功可通过/usr/bin/fdfs_test测试上传、下载等操作。
修改/etc/fdfs/client.conf
[root@localhost ~]# vim /etc/fdfs/client.conf
base_path=/opt/fastdfs
tracker_server=192.168.80.130:22122
接下来就是测试上传图片怎么测试呢?首先是先从本第往Linux下root文件夹下传一张图片:
/usr/bin/fdfs_test /etc/fdfs/client.conf upload /root/001.jpg
解释一下是什么意思
但是我们怎么才能看到我们的文件被传到哪里去了呢??
再看看我们前一张的图片里面
把这个地址输入浏览器,是不是很激动???但是很遗憾图片出不来嘿嘿,此时是不是有一万个****奔腾而过,是什么原因呢,原因是我们还没有配置nginx(后面马上配置),接下来回归正题,图片存在哪里了??此时眼尖的同学已经看到了,就是前几张图里面的那个位置里面嘛!
性哪里看出来呢?我能说是路径上吗??
三、FastDFS整合nginx
1 安装前配置fastdfs-nginx-module
上传fastdfs-nginx-module_v1.16.tar.gz上传到 /usr/local,并解压
tar -zxvf fastdfs-nginx-module_v1.16.tar.gz
编辑配置文件:修改config文件将/usr/local/路径改为/usr/ 3处
vim fastdfs-nginx-module/src/config
将FastDFS-nginx-module/src下的mod_fastdfs.conf拷贝至/etc/fdfs/下
[root@localhost src]# cp mod_fastdfs.conf /etc/fdfs/
并修改mod_fastdfs.conf的内容:
vim /etc/fdfs/mod_fastdfs.conf
行号 10,40 ,53,62
将libfdfsclient.so拷贝至/usr/lib下
[root@localhost src]# cp /usr/lib64/libfdfsclient.so /usr/lib/
2 安装nginx
安装nginx 需要先配置nginx 的运行环境
Nginx 安装
-
Nginx服务器搭建
第一步:安装C语言编译环境gcc:yum -y install gcc-c++
第二步:安装第三方的开发包。
PCRE
PCRE(Perl Compatible Regular Expressions)是一个Perl库,包括 Perl 兼容的正则表达式库。Nginx的HTTP模块使用PCRE来解析正则表达式,所以需要在Linux上安装PCRE库。
yum install -y pcre pcre-devel
注:pcre-devel是使用PCRE开发的一个二次开发库。Nginx也需要这个库。
zlib
zlib库提供了很多种压缩和解压缩的方式,Nginx使用zlib对HTTP包的内容进行gzip,所以需要在Linux上安装zlib库。
yum install -y zlib zlib-devel
OpenSSL
OpenSSL是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。
nginx不仅支持http协议,还支持https(即在ssl协议上传输http),所以需要在linux安装openssl库。
yum install -y openssl openssl-devel
上传文件
nginx-1.12.2.tar.gz
创建nginx/client目录
解压:nginx-1.12.2.tar.gz
cd nginx-1.12.2
[root@localhost src]# mkdir -p /var/temp/nginx/client
cd /usr/local/nginx-1.12.2的原始程序目录
configure: 表示自动配置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/fastdfs-nginx-module/src
配置成功
编译
[root@localhost nginx-1.12.2]# make
安装
[root@localhost nginx-1.12.2]# make install
3、编辑nginx.conf 代理!
编辑 nginx 的安装路径的nginx.conf
vim /usr/local/nginx/conf/nginx.conf
server {
listen 80;
server_name 192.168.67.204;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html;
index index.html index.htm;
}
location /group1/M00/ {
ngx_fastdfs_module;
}
启动nginx
/usr/local/nginx/sbin/nginx
测试
/usr/bin/fdfs_test /etc/fdfs/client.conf upload /root/ty.jpg
ok!出来了!