FastDFS搭建文件管理系统

本文详细介绍了在 CentOS 环境下,如何从下载安装 libfastcommon 和 FastDFS 开始,配置Tracker和Storage服务,以及通过Nginx模块实现文件上传和访问。步骤包括设置主机映射、编译安装、配置文件路径和端口,最终完成文件管理系统搭建。
摘要由CSDN通过智能技术生成

一.参考文档

1.FastDFS原理和过程
2.FastDFS分布式文件系统
3.用FastDFS一步步搭建文件管理系统

分割线**************************************************

本人博客链接
本文链接*************

分割线**************************************************

二.安装FastDFS环境

操作环境:CentOS-7-x86_64-DVD-1810

1.在根目录下建立/software文件

在根目录下创建software文件夹用于存放下载的文件包

# mkdir /soft

修改hosts,将文件服务器的ip与域名映射
# vim /etc/hosts
添加一行
172.16.168.140 file.fastdfs.com

windows
如果要本机访问虚拟机,在C:\Windows\System32\drivers\etc\hosts中同样增加一行
mac
打开终端 vim /etc/hosts 增加一行

2.下载安装 libfastcommon

进入soft目录下
# cd /soft

下载libfastcommon
# wget https://github.com/happyfish100/libfastcommon/archive/V1.0.7.tar.gz

如果报

-bash: wget: command not found
You have new mail in /var/spool/mail/root

说明你系统没有安装wget,用yum -y install wget 安装之后即可

成功下载libfastcommon之后,soft目录下会生成一个 V1.0.7.tar.gz

解压 V1.0.7.tar.gz 生成 libfastcommon-1.0.7 文件夹
# tar -zxvf V1.0.7.tar.gz

进入libfastcommon-1.0.7
# cd libfastcommon-1.0.7/

编译
# ./make.sh
如果出现下面的情况   运行 yum -y install gcc+ gcc-c++  即可解决
./make.sh: line 14: gcc: command not found
./make.sh: line 15: ./a.out: No such file or directory

安装
#  ./make.sh install

安装完之后创建软连接
# ln -s /usr/lib64/libfastcommon.so /usr/local/lib/libfastcommon.so
# ln -s /usr/lib64/libfastcommon.so /usr/lib/libfastcommon.so
# ln -s /usr/lib64/libfdfsclient.so /usr/local/lib/libfdfsclient.so
# ln -s /usr/lib64/libfdfsclient.so /usr/lib/libfdfsclient.so 

3.下载安装FastDFS

回到soft目录下并下载FastDFS
# cd /soft
# wget https://github.com/happyfish100/fastdfs/archive/V5.05.tar.gz

解压生成的V5.05.tar.gz
# tar -zxvf V5.05.tar.gz

进入解压的fastdfs-5.05文件
# cd fastdfs-5.05

编译、安装
# ./make.sh && ./make.sh install

建立软链接
# ln -s /usr/bin/fdfs_trackerd   /usr/local/bin
# ln -s /usr/bin/fdfs_storaged   /usr/local/bin
# ln -s /usr/bin/stop.sh         /usr/local/bin
# ln -s /usr/bin/restart.sh      /usr/local/bin

4.配置FastDFS跟踪器(Tracker)

FastDFS 配置文件详解

进入 /etc/fdfs,复制 FastDFS 跟踪器样例配置文件 tracker.conf.sample,并重命名为 tracker.conf。
# cd /etc/fdfs
# cp tracker.conf.sample tracker.conf
# vim tracker.conf

修改下面两个参数即可

# Tracker 数据和日志目录地址(根目录必须存在,子目录会自动创建)
base_path= /fastdfs/tracker

# HTTP 服务端口
http.server_port=80

保存后创建目录
# mkdir -p /fastdfs/tracker 

linux启动或关闭防火墙,开放端口
开启22122端口 或者关闭防火墙 参考上面的链接

启动Tracker
初次成功启动,会在 /fdfsdfs/tracker/ (配置的base_path)下创建 data、logs 两个目录

启动Tracker
上面创建了软链接   可以用这种方式启动,
# service fdfs_trackerd start

查看 FastDFS Tracker 是否已成功启动 ,22122端口正在被监听,则算是Tracker服务安装成功。
# netstat -unltp|grep fdfs

在这里插入图片描述
关闭Tracker

关闭Tracker
# service fdfs_trackerd stop

设置Tracker开机启动
# chkconfig fdfs_trackerd on

5.配置 FastDFS 存储 (Storage)

进入 /etc/fdfs 目录,复制 FastDFS 存储器样例配置文件 storage.conf.sample,并重命名为 storage.conf
# cd /etc/fdfs
# cp storage.conf.sample storage.conf
# vim storage.conf

修改下面的这些参数

# Storage 数据和日志目录地址(根目录必须存在,子目录会自动生成)
base_path=/fastdfs/storage

# 逐一配置 store_path_count 个路径,索引号基于 0。
# 如果不配置 store_path0,那它就和 base_path 对应的路径一样。
store_path0=/fastdfs/file

# tracker_server 的列表 ,会主动连接 tracker_server
# 有多个 tracker server 时,每个 tracker server 写一行
tracker_server=file.fastdfs.com:22122

# 访问端口
http.server_port=80

创建Storage基础数据目录,对应base_path目录

创建Storage基础数据目录,对应base_path目录
# mkdir -p /fastdfs/storage

这是配置的store_path0路径
# mkdir -p /fastdfs/file

开启23000端口 或者关闭防火墙

启动Storage
初次成功启动,会在 /fdfsdfs/tracker/ (配置的base_path)下创建 data、logs 两个目录

启动Storage
上面创建了软链接   可以用这种方式启动
# service fdfs_storaged start

查看 FastDFS Tracker 是否已成功启动 ,23000端口正在被监听,则算是Storage服务安装成功。
# netstat -unltp|grep fdfs

在这里插入图片描述

关闭Tracker

关闭Storage
# service fdfs_storaged stop

设置Storage开机启动
# chkconfig fdfs_storaged on

查看Storage和Tracker是否在通信:

/usr/bin/fdfs_monitor /etc/fdfs/storage.conf

在这里插入图片描述

5.文件上传测试

修改 Tracker 服务器中的客户端配置文件

# cd /etc/fdfs
# cp client.conf.sample client.conf
# vim client.conf

修改如下配置即可,其它默认。
# Client 的数据和日志目录
base_path=/fastdfs/client

# Tracker端口
tracker_server=file.fastdfs.com:22122

创建对应base_path目录

# mkdir -p /fastdfs/client

上传测试
在linux内部执行如下命令上传 test.png 图片

上传一张图片到/soft目录下测试
# cd /soft/
# ll

在这里插入图片描述

执行上传命令
# /usr/bin/fdfs_upload_file /etc/fdfs/client.conf test.png

在这里插入图片描述
返回的文件ID由group、存储目录、两级子目录、fileid、文件后缀名(由客户端指定,主要用于区分文件类型)拼接而成。
在这里插入图片描述

三.安装Nginx

1、安装nginx所需环境

① gcc 安装
# yum install gcc-c++

② PCRE pcre-devel 安装
# yum install -y pcre pcre-devel

③ zlib 安装
# yum install -y zlib zlib-devel

④ OpenSSL 安装
# yum install -y openssl openssl-devel

2、安装Nginx

① 下载nginx
# cd /soft
# wget -c https://nginx.org/download/nginx-1.12.1.tar.gz

② 解压
# tar -zxvf nginx-1.12.1.tar.gz
# cd nginx-1.12.1

③ 使用默认配置
# ./configure

④ 编译、安装
# make
# make install

⑤ 启动nginx
# cd /usr/local/nginx/sbin/
# ./nginx 

其它命令
# ./nginx -s stop
# ./nginx -s quit
# ./nginx -s reload

⑥ 设置开机启动
# vim /etc/rc.local

添加一行:
/usr/local/nginx/sbin/nginx

设置执行权限
# chmod 755 rc.local

开启80端口 或者关闭防火墙

3、访问文件

简单的测试访问文件

修改nginx.conf
# vim /usr/local/nginx/conf/nginx.conf

添加如下行,将 /group1/M00 映射到 /fastdfs/file/data
location /group1/M00 {
    alias /fastdfs/file/data;
}

重启nginx
# /usr/local/nginx/sbin/nginx -s reload

在浏览器访问之前上传的图片、成功。
http://file.fastdfs.com/group1/M00/00/00/rBCojGB2q1qAX8r8AAAr8DVExtI263.png

四.FastDFS 配置 Nginx 模块

下载 fastdfs-nginx-module、解压
# wget https://github.com/happyfish100/fastdfs-nginx-module/archive/5e5f3566bbfa57418b5506aaefbe107a42c9fcb1.zip

# 解压
# unzip 5e5f3566bbfa57418b5506aaefbe107a42c9fcb1.zip

# 重命名
# mv fastdfs-nginx-module-5e5f3566bbfa57418b5506aaefbe107a42c9fcb1  fastdfs-nginx-module-master



配置Nginx
在nginx中添加模块
先停掉nginx服务
# /usr/local/nginx/sbin/nginx -s stop

进入解压包目录
# cd /soft/nginx-1.12.1/

# 添加模块
# ./configure --add-module=../fastdfs-nginx-module-master/src

重新编译、安装
# make && make install


查看Nginx的模块
# /usr/local/nginx/sbin/nginx -V

出现下面的内容就说明添加模块成功
在这里插入图片描述

复制 fastdfs-nginx-module 源码中的配置文件到/etc/fdfs 目录, 并修改
# cd /soft/fastdfs-nginx-module-master/src

# cp mod_fastdfs.conf /etc/fdfs/

修改如下配置,其它默认
# 连接超时时间
connect_timeout=10

# Tracker Server
tracker_server=file.fastdfs.com:22122

# StorageServer 默认端口
storage_server_port=23000

# 如果文件ID的uri中包含/group**,则要设置为true
url_have_group_name = true

# Storage 配置的store_path0路径,必须和storage.conf中的一致
store_path0=/fastdfs/file


复制 FastDFS 的部分配置文件到/etc/fdfs 目录

# cd /soft/fastdfs-5.05/conf/

# cp anti-steal.jpg http.conf mime.types /etc/fdfs/

配置nginx,修改nginx.conf
# vim /usr/local/nginx/conf/nginx.conf

修改配置,其它的默认
在80端口下添加fastdfs-nginx模块
location ~/group([0-9])/M00 {
    ngx_fastdfs_module;
}

在这里插入图片描述

/fastdfs/file 文件存储目录下创建软连接,将其链接到实际存放数据的目录,这一步可以省略。

# ln -s /fastdfs/file/data/ /fastdfs/file/data/M00 

启动nginx
# /usr/local/nginx/sbin/nginx

在地址栏访问。
能下载文件就算安装成功。注意和第三点中直接使用nginx路由访问不同的是,这里配置 fastdfs-nginx-module 模块,可以重定向文件链接到源服务器取文件。
http://file.fastdfs.com/group1/M00/00/00/rBCojGB2q1qAX8r8AAAr8DVExtI263.png

到此,FastDFS单机服务器搭建就完成了。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值