本文不对原理进行阐述
一、简介
来自百度百科:
二、面向对象
基本解决了大容量存储和负载均衡的问题。
1.高可靠性:无单点故障
2.高吞吐量:只要Group足够多,数据流量就足够分散。
三、fastDFS的构成
1.服务端跟踪器(Tracker Server)
调度工作,在访问上起到负载均衡的作用
2.服务端存储节点(Storage Server)
文件的存储、同步并提供存取接口
四、安装搭建
1.安装环境:gcc环境
yum -y install gcc-c++
2.安装依赖:libevent 库
yum -y install libevent
3.下载相关安装包,并上传/usr/local下,如图
1.fastdfs-5.12.tar.gz
下载地址:https://github.com/happyfish100/fastdfs/releases
2.fastdfs-nginx-module-1.20.tar.gz
下载地址:https://github.com/happyfish100/fastdfs-nginx-module/releases
3.libfastcommon-1.0.43.tar.gz
下载地址:https://github.com/happyfish100/libfastcommon/releases
4.nginx-1.16.1.tar.gz
下载地址:http://nginx.org/en/download.html
4.安装这些包(显示指令执行过程)
环境
yum install -y gcc gcc-c++
yum install -y perl
yum install -y libevent
4.1 安装libfastcommon
tar -zxf libfastcommon-1.0.43.tar.gz //解压
cd libfastcommon-1.0.43 //切换
./make.sh && ./make.sh install //安装
注意:如果在 /usr/lib/ 之下没有 libfastcommon.so
cd /usr/lib64/ //切换到lib64包
cp libfastcommon.so /usr/lib/ //拷贝libfastcommon.so 到/usr/lib/
find /usr/lib/ -name libfastcommon.so //在/usr/lib/ 之下没有 libfastcommon.so
4.2 安装fastdfs
tar -zxvf fastdfs-5.12.tar.gz //解压文件包
cd fastdfs-5.12 //切换
./make.sh && ./make.sh install //编译安装
4.3 安装完成执行
cd /etc/fdfs/
ll
4.4 将安装目录下的conf文件夹里的文件复制到 /etc/fdfs/里
cd /usr/local/fastdfs-5.12/conf/
cp * /etc/fdfs/
cd /etc/fdfs/
ll
4.5 安装配置跟踪器服务(Tracker)
创建文件夹:mkdir -p /home/fastdfs
4.5.1 修改配置文件 /etc/fdfs/tracker.conf 设置数据的存储路径
base_path=/home/fastdfs
4.5.2 启动Tracker
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf //启动跟踪器
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart //重启跟踪器
4.6 安装存储节点服务(Storage)
4.6.1 修改配置文件 /etc/fdfs/storage.conf 设置数据的存储路径
创建文件夹:mkdir -p /home/fdfs_storage
base_path=/home/fastdfs
store_path0=/home/fdfs_storage
tracker_server = IP:22122
http.server_port=88
4.6.2 启动Storage
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf // 启动
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart //重启
4.7 配置客户端(Client)
注意:如果在 /usr/lib/ 之下没有 libfdfsclient.so,需要将目录包/root/soft/fastdfs-6.06/client里的进行拷贝过来
4.7.1 修改配置文件 /etc/fdfs/client.conf
base_path = /home/fastdfs
tracker_server = IP:22122
4.8 测试
4.8.1 准备图片一张
4.8.2 上传测试、结果如图
/usr/bin/fdfs_test /etc/fdfs/client.conf upload /usr/local/soft/28.png
注意:如果出现超时错误等,可以查看服务器的防火墙端口访问,或者部分服务器还得添加安全组重启后生效,例如阿里云的服务器
5.安装fastdfs-nginx插件,辅助nginx与fastDFS工作
解决问题:测试文件在浏览器无法被访问
浏览器——>nginx——>fastdfs-nginx插件——>fastDFS
5.1 解压 fastdfs-nginx-module-1.20.tar.gz,并配置config文件删掉里面的local(将文件中的所有 /usr/local/ 路径改为 /usr/),将mod_fastdfs.conf文件拷贝到 /etc/fdfs里,并修改
tar -zxvf fastdfs-nginx-module-1.20.tar.gz
cd /usr/local/fastdfs-nginx-module/src/
cp mod_fastdfs.conf /etc/fdfs/
vi /etc/fdfs/mod_fastdfs.conf
mod_fastdfs.conf修改
base_path=/home/fastdfs
tracker_server=IP:22122
url_have_group_name = true
store_path0=/home/fdfs_storage
5.2安装nginx依赖
# 安装PCRE
yum install -y pcre pcre-devel
# 安装zlib
yum install -y zlib zlib-devel
# 安装openssl
yum install -y openssl openssl-devel
6.安装Nginx
创建临时目录:mkdir -p /var/temp/nginx/client
6.1 解压
tar -zxvf nginx-1.16.1.tar.gz
6.2 给Nginx 重新配置,添加插件模块
注意:/root/soft/fastdfs-nginx-module-1.21/src 根据自己安装包实际情况配置
cd nginx-1.16.1
./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-1.20/src
make && make install
安装完成后查看nginx目录,如图
ll /usr/local/nginx
mkdir /usr/local/nginx/logs 增加日志文件夹
6.3 修改Nginx配置文件
cd /usr/local/nginx/conf/
vi nginx.conf
pid /usr/local/nginx/logs/nginx.pid;
6.4 启动nginx
cd /usr/local/nginx/sbin/
./nginx
至此,只要防火墙或者服务器的安全组相关端口()开发,即可正常访问了
80(nginx)、22122(tracker)、23000(storage)端口