FastDFS 文件存储服务
下载
开源地址
https://github.com/happyfish100
需要使用到的安装包
fastdfs-6.04.tar.gz
fastdfs-nginx-module-1.22.tar.gz
libfastcommon-1.0.42.tar.gz
nginx-1.16.1.tar.gz
需要使用到的相关依赖
yum install -y gcc gcc-c++
yum -y install libevent
安装
libfastcommon
# 解压
tar -zxvf libfastcommon-1.0.42.tar.gz
# 进入目录下
cd libfastcommon-1.0.42
# 编译
./make.sh
# 安装
./make.sh install
fastdfs
# 解压
tar -zxvf fastdfs-6.04.tar.gz
# 进入目录下
cd fastdfs-6.04
# 查看编译后的相关配置文件存放路径
vim make.sh
# 安装后的默认存放路径
TARGET_PREFIX=$DESTDIR/usr
TARGET_CONF_PATH=$DESTDIR/etc/fdfs
TARGET_INIT_PATH=$DESTDIR/etc/init.d
# 编译
./make.sh
# 安装
./make.sh install
## 配置文件
# 进入 fastdfs-6.04 下的conf目录,将所有的配置文件复制到 /etc/fdfs 下
cd fastdfs-6.04/conf
# 复制
cp * /etc/fdfs/
# 进入对应配置文件所在路径
cd /etc/fdfs
需要安装两个模块,分别是处理对外请求,和负责文件存储的服务
tracker(处理对外请求)
# 编辑相关配置文件
vim tracker.conf
# 修改基础空间路径
base_path=/usr/local/fdstdfs/tracker
# 创建目录
mkdir /usr/local/fdstdfs/tracker -p
# 启动
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf
# 检查是否启动
ps -ef|grep tracker
# 停止
/usr/bin/stop.sh /etc/fdfs/tracker.conf
storage(相关存储)
## 处理 storage配置文件
vim storage.conf
# 修改存储组名(修改了存储组名后,后续其它配置需要和当前保持一致)
group_name=mygroup
# 修改storage的工作空间
base_path=/usr/local/fdstdfs/storage
# 修改storage的存储空间
store_path0=/usr/local/fdstdfs/storage
# 修改tracker的地址和端口号,用于心跳(不能写127.0.0.1和localhost),注: 如果需要进行外网访问的话,ip需要写公网ip
tracker_server=10.0.12.11:22122
# 后续结合nginx的一个对外服务端口号
http.server_port=8888
# 创建目录
mkdir /usr/local/fdstdfs/storage -p
# 启动
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf
# 检查是否启动
ps -ef|grep storage
测试是否可用
# 修改可用客户端配置,用于测试是否可用
vim client.conf
# 修改工作空间
base_path=/usr/local/fdstdfs/client
# 修改tracker的地址和端口号
tracker_server=10.0.12.11:22122
mkdir /usr/local/fdstdfs/client -p
#测试上传(脚本 + 配置文件路径 + 所上传文件路径),测试完成后,会返回对应的文件路径
/usr/bin/fdfs_upload_file /etc/fdfs/client.conf content3-4.jpg
fastdfs-nginx-module
# 解压
tar -zxvf fastdfs-nginx-module-1.22.tar.gz
# 进入解压后的模块目录下
cd fastdfs-nginx-module-1.22/src
# 将对应的配置文件复制一份到 /etc/fdfs/
cp mod_fastdfs.conf /etc/fdfs/
# 修改nginx模块配置文件
# 修改为 tracker_server 对应ip和端口
tracker_server=10.0.12.11:22122
# 对应的组名称
group_name=imooc
# fdfs文件存储位置
store_path0=/usr/local/fdstdfs/storage
# 基础工作空间
base_path=/usr/local/fdstdfs/nginx
nginx 安装
- 可以看这里
https://blog.csdn.net/xiaomzhng/article/details/124618013
配合nginx使用
# 查看当前模块是否已添加
./nginx -V
修改配置文件
user root;
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
# 端口需要和storage的配置文件保持一致
listen 8888;
server_name localhost;
# /组名/路径名
location /mygroup/M00 {
# 模块名
ngx_fastdfs_module;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
能够成功访问到之前上传的文件 ip:port/组名/M00/00/00/CgAMC2J8fTCARHmtAAIxdMx6dLU017.jpg(使用测试上传的文件,在端口后拼接返回的文件路径即可)
可能存在的问题
1, 如果使用云服务器,那 storage 中的 ip地址需要写外网ip,在外网使用才能访问到
tracker_server=10.0.12.11:22122
2, 使用到的端口(需要开放以下端口,注:如果nginx对应的8888 端口一直访问不到,可以修改为其它端口,如:80)
tracker: 22122,
storage: 23000
nginx: 8888