前言
本教程采用centos7 实测 安装fastdfs,每一步都存在截图,安装不成功你就@我
最关键的是采用springboot 集成 fastdfs,上传保存文件信息
小序
FastDFS是一个开源的分布式文件系统,她对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册网站、视频网站等等。
FastDFS服务端有两个角色:跟踪器(tracker)和存储节点(storage)。跟踪器主要做调度工作,在访问上起负载均衡的作用。
存储节点存储文件,完成文件管理的所有功能:存储、同步和提供存取接口,FastDFS同时对文件的meta data进行管理。所谓文件的meta data就是文件的相关属性,以键值对(key value pair)方式表示,如:width=1024,其中的key为width,value为1024。文件meta data是文件属性列表,可以包含多个键值对。
准备所需资源
下载地址 : https://sourceforge.net/projects/fastdfs/files/
如果该链接打不开 文章下面有我上传的有百度云盘 可以进行下载
哪位大佬如果积分充足 可以赏赐一些
链接: 资源下载地址
安装fastdfs
tar -zxvf tar zxf FastDFS_v5.05.tar.gz
tar zxf libfastcommon-1.0.7.tar.gz
cd libfastcommon-master/
./make.sh
./make.sh install
可以看到在/usr/lib目录中已经存在
然后回到FastDFS编译的目录进行
./make.sh
./make.sh install
在/etc/fdfs路径下会生成三个配置文件
使用命令进行复制
cp client.conf.sample client.conf
cp storage.conf.sample storage.conf
cp tracker.conf.sample tracker.conf
/usr/lib目录下的文件
/usr/lib64下的文件
/usr/bin下的文件
/etc/fdfs下的文件
配置Tracker
在配置Tracker之前,首先需要创建Tracker服务器的文件路径,即用于存储Tracker的数据文件和日志文件等,我这里选择在/opt目录下创建一个fastdfs_tracker目录用于存放Tracker服务器的相关文件:
mkdir /opt/fastdfs_tracker
i 编辑
esc :wq 保存 退出
disabled=false #启用配置文件(默认启用)
port=22122 #设置tracker的端口号,通常采用22122这个默认端口
base_path=/opt/fastdfs_tracker #设置tracker的数据文件和日志目录
http.server_port=6666 #设置http端口号,默认为8080
启动命令: /usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf start
启动成功之后 会生成logs和data两个文件夹
配置storage
步骤基本与配置Tracker一致,首先是创建Storage服务器的文件目录,需要注意的是同Tracker相比我多建了一个目录,因为Storage还需要一个文件存储路径,用于存放接收的文件
mkdir /opt/fastdfs_storage
mkdir /opt/fastdfs_storage_data
接下来修改/etc/fdfs目录下的storage.conf配置文件,打开文件后依次做以下修改
i 编辑
esc :wq 保存退出
disabled=false #启用配置文件(默认启用)
group_name=group1 #组名,根据实际情况修改
port=23000 #设置storage的端口号,默认是23000,同一个组的storage端口号必须一致
base_path=/opt/fastdfs_storage #设置storage数据文件和日志目录
store_path_count=1 #存储路径个数,需要和store_path个数匹配
store_path0=/opt/fastdfs_storage_data #实际文件存储路径
tracker_server=192.168.0.199:22122 #tracker 服务器的 IP地址和端口号,如果是单机搭建,IP不要写127.0.0.1,否则启动不成功(此处的ip是我的CentOS虚拟机ip)
http.server_port=8888 #设置 http 端口号
启动成功之后 会生成logs和data两个文件夹
测试
测试时需要设置客户端的配置文件,编辑/etc/fdfs目录下的client.conf 文件,打开文件后依次做以下修改:
base_path=/opt/fastdfs_tracker #tracker服务器文件路径
tracker_server=192.168.0.199:22122 #tracker服务器IP地址和端口号
http.tracker_server_port=6666 # tracker 服务器的 http 端口号,必须和tracker的设置对应起来
把该图片传到/opt目录下
上传图片进行测试: /usr/bin/fdfs_upload_file /etc/fdfs/client.conf /opt/1.jpg
这就表示我们的文件已经上传成功了,当文件存储到某个子目录后,即认为该文件存储成功,接下来会为该文件生成一个文件名,文件名由group、存储目录、两级子目录、fileid、文件后缀名(由客户端指定,主要用于区分文件类型)拼接而成
此时发现并不能访问,因为FastDFS目前已不支持http协议,4.0.5版本开始移除了自带的HTTP支持(因为之前自带的HTTP服务较为简单,无法提供负载均衡等高性能服务),所以提供了nginx上使用FastDFS的模块fastdfs-nginx-module,下载地址如下:https://github.com/happyfish100/fastdfs-nginx-module,这样做最大的好处就是提供了HTTP服务并且解决了group中storage服务器的同步延迟问题,接下来就具体记录一下fastdfs-nginx-module的安装配置过程
fastdfs-nginx-module
tar zxf fastdfs-nginx-module_v1.16.tar.gz
cd fastdfs-nginx-module/src
vim config
本机因为之前已经安装过nginx,直接跳过安装,进行整合编译
centos7中安装nginx步骤
1、安装nginx编译环境
# yum -y install gcc-c++
# yum -y install pcre-devel openssl openssl-devel
2、安装之前检查是否有安装过nginx
find -name nginx
3、如果有安装卸载
yum remove nginx
4、选择你想要安装的目录,我选择的是/usr/local下的目录安装
cd /usr/local
5、然后下载最新的nginx
wget http://nginx.org/download/nginx-1.12.0.tar.gz
6、解压nginx包
tar -zxvf nginx-1.12.0.tar.gz
7、配置nginx安装信息
解压之后进入nginx安装目录后,执行以下语句:
./configure --prefix=/home/admin/Desktop/yzx/nginx/nginx-1.12.0 --with-http_ssl_module --sbin-path=/home/admin/Desktop/yzx/nginx/nginx-1.12.0/sbin/nginx --conf-path=/home/admin/Desktop/yzx/nginx/nginx-1.12.0/conf/nginx.conf
注:–prefix 参数:指定安装目录;–with-http_ssl_module:编译的时候启用SSL支持
8、然后编译、安装
make
make install
9、使用命令查看nginx的安装路径
whereis nginx
10、给nginx目录权限
chmod -R 777 /home/admin/Desktop/yzx/nginx/nginx-1.12.0
cd /home/admin/Desktop/yzx/nginx/nginx-1.12.0/conf
vim nginx.conf
第一行:
user root;
进入cd /usr/local/nginx/sbin/启动nginx./nginx,然后查看nginx服务是否成功netstat -ntlp
然后根据ip进行访问即可:
添加fastdfs模块 重新编译
./configure --prefix=/home/admin/Desktop/yzx/nginx/nginx-1.12.0 --with-http_ssl_module --sbin-path=/home/admin/Desktop/yzx/nginx/nginx-1.12.0/sbin/nginx --conf-path=/home/admin/Desktop/yzx/nginx/nginx-1.12.0/conf/nginx.conf --add-module=/home/admin/Desktop/yzx/fastdfs/fastdfs-nginx-module/src/
make
make install
./nginx -V
查看编译的版本情况信息
cd /etc/fdfs
编辑配置文件
vim mod_fastdfs.conf
需要修改文件中四处内容,这四处内容的含义:
connect_timeout=20 #连接超时时间,单位秒
tracker_server=192.168.0.199:22122 #tracker服务结点
url_have_group_name = true #URL中是否包含group名称
store_path0=/opt/fastdfs_storage_data # storage服务结点的存储位置,与配置storage结点一致
提供FastDFS需要的HTTP配置文件
复制FastDFS安装包中的两个配置文件(http.conf和mime.types)到/etc/fdfs目录中
在nginx.conf配置文件中添加该server
nginx 启动成功(这个是把nginx做成启动服务了 使用systemctl start nginx)
输入端口访问不成功 感觉是防火墙端口问题
查看防火墙允许访问的端口列表
一、开放端口用 --add-port
firewall-cmd --permanent --add-port=8888/tcp
二、移除端口用 --remove-port
firewall-cmd --permanent --remove-port=8888/tcp
三、刷新规则用 --reload
firewall-cmd --reload
四、 查看防火墙开放端口
firewall-cmd --list-all
至此 浏览器已经可以看到fastdfs的文件
资源列表
链接:https://pan.baidu.com/s/1M7YTOHMeTW_cF5j5dvPsZg
提取码:1314