所有的组件都可以从github或者gitee上下载,这是fastdfs开发团队在github的开源项目:https://github.com/happyfish100
注意:每个组件都有个HISTORY文件,在里面可以看各版本兼容
1.libfastcommon:版本1.0.51,fastdfs的基础C函数库 ,点我下载
2.fastdfs :版本6.07,fastdfs核心组件,点我下载
3.fastdfs-nginx-module:版本1.22,fastdfs集成nginx模块,点我下载
4.nginx:版本1.20.1,nginx模块,点我下载
安装的时候最好用root权限的账户,因为涉及到安装和更改配置文件等操作
tar -zxvf libfastcommon-1.0.51.tar.gz
cd libfastcommon-1.0.51/
./make.sh
./make.sh install (注意:这里要有root权限)
tar -zxvf fastdfs-6.07.tar.gz
./make.sh
./make.sh install (注意:这里要有root权限)
cd /etc/fdfs
cp tracker.conf.sample tracker.conf
vim tracker.conf
# Tracker 数据和日志目录地址(根目录必须存在,子目录会自动创建) base_path=/ljzsg/fastdfs/tracker # HTTP 服务端口 http.server_port=80
如果目录不存在,记得手动创建
service fdfs_trackerd start
ps -ef|grep fdfs_trackerd
cd /etc/fdfs
cp storage.conf.sample storage.conf
vim storage.conf
# Storage 数据和日志目录地址(根目录必须存在,子目录会自动生成) base_path=/ljzsg/fastdfs/storage # 逐一配置 store_path_count 个路径,索引号基于 0。 # 如果不配置 store_path0,那它就和 base_path 对应的路径一样。 store_path0=/ljzsg/fastdfs/file # tracker_server 的列表 ,会主动连接 tracker_server # 有多个 tracker server 时,每个 tracker server 写一行 tracker_server=file.ljzsg.com:22122 # 访问端口 http.server_port=80
如果目录不存在,记得手动创建
service fdfs_storaged start
ps -ef|grep fdfs_storaged
/usr/bin/fdfs_monitor /etc/fdfs/storage.conf
cd /etc/fdfs
cp client.conf.sample client.conf
vim client.conf
# Client 的数据和日志目录 base_path=/ljzsg/fastdfs/client # Tracker端口 tracker_server=file.ljzsg.com:22122
如果目录不存在,记得手动创建
ps:假设在linux本地上传一个 fastdfs-nginx-module-1.22.tar.gz 压缩包
/usr/bin/fdfs_upload_file /etc/fdfs/client.conf /opt/aspire/product/cmop/fastdfs/fastdfs-nginx-module-1.22.tar.gz
上传成功,返回了一个id:group1/M00/00/00/CgHLUWDIUI2AF18pAABN8HAGbcY.tar.gz
可以到存储路径里验证一下:
如果已安装,可以跳过1、2步骤
tar -zxvf nginx-1.20.1.tar.gz
cd nginx-1.20.1
./configure --prefix=自定义用户目录
make
make install
vim 自定义用户目录/conf/nginx.conf
location ~/group([0-9])/M00 {
ngx_fastdfs_module;
}
(注意:listen 80 是默认端口值,可根据实际情况修改)
fastdfs-nginx-module 模块说明
FastDFS 通过 Tracker 服务器,将文件放在 Storage 服务器存储, 但是同组存储服务器之间需要进行文件复制, 有同步延迟的问题。
假设 Tracker 服务器将文件上传到了 192.168.51.128,上传成功后文件 ID已经返回给客户端。
此时 FastDFS 存储集群机制会将这个文件同步到同组存储 192.168.51.129,在文件还没有复制完成的情况下,客户端如果用这个文件 ID 在 192.168.51.129 上取文件,就会出现文件无法访问的错误。
而 fastdfs-nginx-module 可以重定向文件链接到源服务器取文件,避免客户端由于复制延迟导致的文件无法访问错误。
tar -zxvf fastdfs-nginx-module-1.22.tar.gz
(找到解压出来的文件,找到里面有个src文件,记住它的路径,下一步要用到)
cd nginx-1.20.1
如果你的nginx安装在默认目录:
./configure --add-module=全路径名/fastdfs-nginx-module-1.22/src
如果你的nginx安装在指定目录:
./configure --prefix=自定义用户目录 --add-module=全路径名/fastdfs-nginx-module-1.22/src
ps:这里的src路径就是上一步的src路径
如果你的nginx安装在默认目录:
make && make install
如果你的nginx安装在指定目录:
./configure --prefix=自定义用户目录 && make && make install
cd …/fastdfs-nginx-module-master/src
cp mod_fastdfs.conf /etc/fdfs/
vim /etc/fdfs/mod_fastdfs.conf
# 连接超时时间 connect_timeout=10 # 日志存放路径 base_path=/tmp # Tracker Server tracker_server=file.ljzsg.com:22122 # 如果文件ID的uri中包含/group**,则要设置为true url_have_group_name = true # Storage 配置的store_path0路径,必须和storage.conf中的一致 store_path0=/ljzsg/fastdfs/file
如果目录不存在,记得手动创建
cd …/fastdfs-6.07/conf/
cp anti-steal.jpg http.conf mime.types /etc/fdfs/
进入nginx的sbin目录
再执行命令:
./nginx -t
./nginx
在地址栏访问,能下载完成就算成功
http://file.ljzsg.com/group1/M00/00/00/CgHLUWDIUI2AF18pAABN8HAGbcY.tar.gz
注意事项:
1.如果你在配置文件里有填写自定义路径的,记得一定要手动创建路径,程序不会自己创建,并且启动会失败且没有提示
2.FastDFS的java客户端有几种jar包:
-- 官方jar包 <dependency> <groupId>org.csource</groupId> <artifactId>fastdfs-client-java</artifactId> <version>1.29-SNAPSHOT</version> </dependency> -- spring项目jar包 <dependency> <groupId>net.oschina.zcx7878</groupId> <artifactId>fastdfs-client-java</artifactId> <version>1.27.0.0</version> </dependency> -- springboot项目jar包 <dependency> <groupId>com.github.tobato</groupId> <artifactId>fastdfs-client</artifactId> <version>1.27.2</version> </dependency>
在github上有官方的jar包:https://github.com/happyfish100/fastdfs-client-java
如果是springboot项目:也有com.github.tobato封装的springboot使用的jar包
3.因为客户端种类颇多,每个人项目不一样,这里暂不介绍客户端的安装,可以自行百度自己项目对应的客户端
文章参考:https://www.cnblogs.com/chiangchou/p/fastdfs.html#_label0