一、关于FastDFS
1、FastDFS简介
FastDFS(Fast Distributed File System)是一个开源的分布式文件系统,旨在解决大规模文件存储和访问的问题,例如图片、音视频等。它具有高性能、高可靠性和可扩展性的特点,被广泛应用于大规模的互联网应用中。
FastDFS由跟踪服务器(Tracker Server)和存储服务器(Storage Server)组成。跟踪服务器负责跟踪存储服务器的状态和负载情况,存储服务器负责实际的文件存储和访问。
2、FastDFS安装环境概览
环境与依赖库:
下载地址:
yum install gcc-c++ yum -y install libevent wget https://github.com/happyfish100/libfastcommon/archive/refs/tags/V1.0.68.tar.gz
wget https://github.com/happyfish100/libserverframe/archive/refs/tags/V1.1.28.tar.gz
wget https://github.com/happyfish100/fastdfs/archive/refs/tags/V6.9.5.tar.gz
二、安装
1、gcc-c++ 安装
yum install gcc-c++
下载完后提示是否安装,选择:Y。安装成功出现:Complete!
2、libevent 安装
yum -y install libevent
安装成功出现:Complete!
3、libfastcommon 安装
这里我放/home目录,安装以实际目录做调整
cd /home ## 下载 wget https://github.com/happyfish100/libfastcommon/archive/refs/tags/V1.0.68.tar.gz ## 解压 tar -zxvf V1.0.68.tar.gz cd libfastcommon-1.0.68/ ## 编译 ./make.sh ## 安装 ./make.sh install
4、libserverframe 安装
cd /home ## 下载 wget https://github.com/happyfish100/libserverframe/archive/refs/tags/V1.1.28.tar.gz ## 解压 tar -zxvf V1.1.28.tar.gz cd libserverframe-1.1.28/ ## 编译 ./make.sh ## 安装 ./make.sh install
5、FastDFS 安装
cd /home ## 下载 wget https://github.com/happyfish100/fastdfs/archive/refs/tags/V6.9.5.tar.gz ## 解压 tar -zxvf V6.9.5.tar.gz cd fastdfs-6.9.5/ ## 编译 ./make.sh ## 安装 ./make.sh install
安装成功后,/etc/fdfs/ 如下:
三、配置
1、创建存储目录相关路径
这里我还是放在/home目录,安装以实际目录做调整(文件夹用途:后续配置需要)
mkdir -p /home/fastdfs mkdir -p /home/fastdfs/data mkdir -p /home/fastdfs/tracker mkdir -p /home/fastdfs/client
2、配置跟踪器(Tracker Server)
配置:
cd /etc/fdfs/ vim tracker.conf #主要更改以下几个配置(其他详细参数可以自行查询资料) #存储数据和日志文件的基本路径 base_path=/home/fastdfs/tracker #Http服务端口(后续放开http访问需要) http.server_port=80 #默认提供服务端口(可自行更改) port=22122
启动:
## 启动 /usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf start ## 查看状态 netstat -apn|grep fdfs
3、配置数据存储(Storage Server)
配置:
cd /etc/fdfs/ vim storage.conf #主要更改以下几个配置(其他详细参数可以自行查询资料) ## storage存储data和log的跟路径 base_path=/home/fastdfs/data ## 默认组名 group_name=group1 ## 默认端口,相同组的storage端口号必须一致 port=23000 ## 配置一个存储路径 store_path_count=1 store_path0=/home/fastdfs/data ## 配置跟踪器IP和端口 tracker_server=服务器外网IP:22122
启动:
## 启动 /usr/bin/fdfs_storaged /etc/fdfs/storage.conf start ## 查看进程 netstat -apn|grep fdfs ## 查看启动日志 tail -f /home/fastdfs/data/logs/storaged.log ## 查看是否在通讯(正常能看到 ACTIVE 标识) /usr/bin/fdfs_monitor /etc/fdfs/storage.conf
4、配置客户端测试
配置:
cd /etc/fdfs/ vim client.conf #主要更改以下几个配置(其他详细参数可以自行查询资料) ## client数据和日志目录 base_path=/data/fastdfs/client ## 配置跟踪器IP和端口 tracker_server=服务器外网IP:22122
启动:
现在/home 目录下放一个图片,执行如下语句:
/usr/bin/fdfs_upload_file /etc/fdfs/client.conf /home/img1.png
返回如下信息(配置成功):
走到这里基本上整个单服务器服务就搭建成功了,但是此时还无法http查看和下载。这里就需要借助fastdfs-nginx-module实现http查看。
四、配置nginx模块实现http方式打开、下载图片
1、相关依赖安装
## pcre-devel 环境 yum install -y pcre pcre-devel ## zlib-devel 环境 yum install -y zlib zlib-devel ## openssl-devel 环境 yum install -y openssl openssl-devel ## unzip 解压缩 yum install -y unzip zip
2、下载解压Nginx
cd /home wget http://nginx.org/download/nginx-1.15.2.tar.gz tar -zxvf nginx-1.15.2.tar.gz
3、下载解压Fast-Nginx
cd /home wget https://github.com/happyfish100/fastdfs-nginx-module/archive/refs/tags/V1.23.zip mv V1.23.zip fast-nginx.zip unzip fast-nginx.zip ## 安装完后需要把mod_fastdfs.conf拷贝到/etc/fdfs目录下 cp /home/fastdfs-nginx-module-1.23/src/mod_fastdfs.conf /etc/fdfs ## 对刚刚拷贝的mod_fastdfs.conf文件进行修改: vim /etc/fdfs/mod_fastdfs.conf ## 主要关注以下配置 base_path=/home/fastdfs/data #保存日志目录 tracker_server=服务器外网IP:22122 #tracker服务器的IP地址以及端口号 url_have_group_name = true #文件 url 中是否有 group 名 store_path0=/home/fastdfs/data #存储路径
4、配置安装Nginx、Fast-Nginx
cd /home/nginx-1.15.2 ## 注入配置 ./configure --add-module=/home/fastdfs-nginx-module-1.23/src ## 编译并安装 make && make install ##复制http.conf和mime.types至 /etc/fdfs/目录 cp /home/fastdfs-6.9.5/conf/http.conf /etc/fdfs/ cp /home/fastdfs-6.9.5/conf/mime.types /etc/fdfs/
验证是否安装成功,执行下面命令,看注入地址是否成功。
/usr/local/nginx/sbin/nginx -V
配置Nginx代理地址
cd /usr/local/nginx/conf/ vim nginx.conf ## 配置内容如下(url_have_group_name = true为false的时候需要更改) server { listen 80; location ~/group([0-9])/M00 { root /data/fastdfs/data; ngx_fastdfs_module; } }
5、见证结束时刻
NGINX服务启动。
## 启动 /usr/local/nginx/sbin/nginx ## 停止 /usr/local/nginx/sbin/nginx -s stop ## 重启 /usr/local/nginx/sbin/nginx -s reload
访问方式:http://互联网Ip地址/group1/M00/00/00/CIbAYmStEtGAPx2FAAAtNms4POE783.png