前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux搭建FastDFS单机版

Linux搭建FastDFS单机版

作者头像
胖虎
发布2019-10-14 15:53:54
3.5K4
发布2019-10-14 15:53:54
举报
文章被收录于专栏:晏霖

前言

使用FastDFS文件服务器主要分为两大步。

第一步·FastDFS系统环境搭建

第二部·配置 Nginx 模块及访问测试

在本文你可以一站式从搭建到使用一一了解到。

正文

介绍

FastDFS特别适合以中小文件(建议范围:4KB < file_size <500MB)为载体的在线服务。

FastDFS 系统有三个角色,跟踪服务器(Tracker Server)、存储服务器(Storage Server)和客户端(Client)。

  • Tracker Server: 跟踪服务器,主要做调度工作,起到均衡的作用;负责管理所有的 storage server
  • 和 group,每个 storage 在启动后会连接 Tracker,告知自己所属 group 等信息,并保持周期性心跳。
  • Storage Server:存储服务器,主要提供容量和备份服务;以 group 为单位,每个 group 内可以有多台 storage server,数据互为备份。
  • Client:客户端,上传下载数据的服务器,也就是我们自己的项目所部署在的服务器

网上偷个图

FastDFS 在 CentOS 下配置安装部署

我的所有下载操作都是在 /usr/local 下进行的。

一、安装 libfastcommon 和 FastDFS

1.下载libfastcommon

代码语言:javascript
复制
wget https://github.com/happyfish100/libfastcommon/archive/V1.0.7.tar.gz

2.解压libfastcommon

代码语言:javascript
复制
tar -zxvf V1.0.7.tar.gz
代码语言:javascript
复制
3.编译,进入libfastcommon-1.0.7目录:
代码语言:javascript
复制
cd libfastcommon-1.0.7/
./make.sh
代码语言:javascript
复制
安装
代码语言:javascript
复制
./make.sh install
代码语言:javascript
复制

显示这样的画面,就是安装 libfastcommon 成功啦。

4.下载安装 FastDFS

代码语言:javascript
复制
wget https://github.com/happyfish100/fastdfs/archive/V5.05.tar.gz

5.解压FastDFS

代码语言:javascript
复制
tar -zxvf V5.05.tar.gz

6.编译,进入fastfds-5.05目录

代码语言:javascript
复制
cd fastdfs-5.05/
./make.sh
代码语言:javascript
复制
安装
代码语言:javascript
复制
./make.sh install

显示这样的画面,就是安装 FastDFS 成功啦。

如果上述所有步骤都成功,那么接下来我们可以配置我们都服务了。

二.配置 Tracker 服务

代码语言:javascript
复制
 cd /etc/fdfs/
 cp tracker.conf.sample tracker.conf
vim tracker.conf
代码语言:javascript
复制
代码语言:javascript
复制
// 编辑tracker.conf文件,找到你需要修改的两个参数就可以了,我这里不做修改,用默认的
# the base path to store data and log files // 数据和日志的存放目录
base_path=/home/yuqing/fastdfs   //默认的

# HTTP port on this tracker server // http服务端口,默认8080,如果跟你其他服务有冲突就改成8070
http.server_port=8070
代码语言:javascript
复制

创建tracker的工作目录

代码语言:javascript
复制
mkdir -p /home/yuqing/fastdfs

启动tracker服务:

代码语言:javascript
复制
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf start

查看启动成功

代码语言:javascript
复制
 
代码语言:javascript
复制
ps -ef|grep fdfs
 netstat -lnpt|grep fdfs
代码语言:javascript
复制

这时候就算 Tracker服务安装成功啦!

三、配置 Storage 服务

代码语言:javascript
复制
cd /etc/fdfs/
cp storage.conf.sample storage.conf
vim storage.conf
代码语言:javascript
复制

找到下面参数进行修改:

代码语言:javascript
复制
# the base path to store data and log files // 数据和日志的存放目录
base_path=/home/yuqing/fastdfs  //使用默认的

# path(disk or mount point) count, default value is 1 // storage在存储文件时支持多路径,默认只设置一个(下面store_path0配置的数量个数)
store_path_count=1

# store_path#, based 0, if store_path0 not exists, it's value is base_path // 配置多个store_path路径,从0开始,如果store_path0不存在,则base_path必须存在
# the paths must be exist
// 此处可以配置多个路径,如:store_path0=xx, store_path1=xx,store_path2=xx
// 多个项目的文件按照文件夹分割,通过/usr/bin/fdfs_upload_file <config_file> <local_filename> [storage_ip:port] [store_path_index] 选择storage服务器和store_path角标上传到相应的项目下
store_path0=/home/yuqing/fastdfs

# tracker_server can ocur more than once, and tracker_server format is // 设置tracker_server
#  "host:port", host can be hostname or ip address
tracker_server=xx.xx.xx.xx:22122  //使用tracker服务的服务器ip,端口用这个
代码语言:javascript
复制
在启动Storage前,我们要保证22122和23000端口在服务器的出入都是通的,要不然启动失败,修改完后执行启动命令
代码语言:javascript
复制
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf start

22122 和 23000端口都在监听了,这个时候你去/home/yuqing/fastdfs文件夹下看的话,会出现一大堆文件夹,而且进去还有一大堆,这就是存放文件的啦! 到这里,我们安装配置并启动了 Tracker 和 Storage 服务。

我们检查他俩是不是在通信,下面我们监听一下

代码语言:javascript
复制
/usr/bin/fdfs_monitor /etc/fdfs/storage.conf

红线处ACTIVE这样就 ok 啦!

四、配置 fdfs_upload_file 上传文件

代码语言:javascript
复制
cd /etc/fdfs/
cp client.conf.sample client.conf
vim client.conf
代码语言:javascript
复制
这个就是配置我们的客户端,将来这就是用java程序上传
代码语言:javascript
复制
# tracker_server can ocur more than once, and tracker_server format is
代码语言:javascript
复制
/usr/bin/fdfs_upload_file /etc/fdfs/client.conf timg.jpeg group1/M01/00/00/timgaa.jpg

文件上传后会返回文件所在路径,我们只要把这路径保存起来,后续集成Nginx我们就可以访问到上传的文件了。

四、配置Nginx 使用 fastdfs-nginx-module 模块

在这之前我们要安装一个nginx,这属于附加内容,如果小伙伴的服务器有nginx略过

代码语言:javascript
复制
cd /usr/local/
1.下载安装 nginx
wget http://nginx.org/download/nginx-1.15.0.tar.gz
2.解压 nginx
tar -zxvf nginx-1.15.0.tar.gz
3.编译&安装
cd /usr/local/nginx-1.15.0
./configure
make
make install
4.启动
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
代码语言:javascript
复制

整个过程大概就是这样,如果在安装编译的时候有错误,请百度nginx相关依赖的安装和下载,很简单的。

1.下载fastdfs-nginx-module模块

代码语言:javascript
复制
wget https://nchc.dl.sourceforge.net/project/fastdfs/FastDFS%20Nginx%20Module%20Source%20Code/fastdfs-nginx-module_v1.16.tar.gz

2.解压fastdfs-nginx-module_v1.16.tar.gz

代码语言:javascript
复制
tar -zxvf fastdfs-nginx-module_v1.16.tar.gz

3.配置 nginx 安装,加入fastdfs-nginx-module模块

这步很关键,我们需要切换到ngixn源码带有configure目录下执行,根据你们fastdfs-nginx-module相应地址灵活变更一下

代码语言:javascript
复制
./configure --prefix=/usr/local/nginx  --add-module=/usr/local/fastdfs-nginx-module/src/

然后编译一下执行

代码语言:javascript
复制
make

然后

代码语言:javascript
复制
cp objs/nginx /usr/local/nginx/sbin/nginx
yes
代码语言:javascript
复制
启动nginx
代码语言:javascript
复制
/usr/local/nginx/sbin/nginx

查看是否模块假如成功

代码语言:javascript
复制
/usr/local/nginx/sbin/nginx -V

红色圈圈内是当前nginx已经安装的模块

五.配置fastdfs-nginx-module 模块

1.拷贝mod-fastdfs.conf到/etc/fdfs文件目录下,配置mod-fastdfs.conf

进入目录fastdfs-nginx-module

代码语言:javascript
复制
cp mod_fastdfs.conf /etc/fdfs/
vim /etc/fdfs/mod_fastdfs.conf
代码语言:javascript
复制
修改文件
代码语言:javascript
复制
tracker_server=xx.xx.xx.xx:22122 //修改成tracker服务器的ip

# if the url / uri including the group name
# set to false when uri like /M00/00/00/xxx
# set to true when uri like ${group_name}/M00/00/00/xxx, such as group1/M00/xxx
# default value is false
url_have_group_name = true

# store_path#, based 0, if store_path0 not exists, it's value is base_path
# the paths must be exist
# must same as storage.conf
store_path0=/home/yuqing/fastdfs
代码语言:javascript
复制
代码语言:javascript
复制
cd /usr/local/fastdfs-5.05/conf/
 cp anti-steal.jpg http.conf mime.types /etc/fdfs/
 cd /etc/fdfs/
代码语言:javascript
复制

2.配置 Nginx。编辑nginx.conf文件

代码语言:javascript
复制
cd /usr/local/nginx/conf
vim nginx.conf
代码语言:javascript
复制
修改
代码语言:javascript
复制
location /group1/M00 {
    root /home/yuqing/fastdfs/data/; // 文件上传存放目录
    ngx_fastdfs_module;
}
代码语言:javascript
复制

重启nginx

代码语言:javascript
复制
./nginx -s reload
代码语言:javascript
复制

测试

还记得前面我们已经上传了一个文件了吗,把生成的地址保留,然后加上你服务器的地址请求

成功啦!!!

日落了,

下班了,今天再见。

下面是用java客户端进行文件上传的代码地址

https://github.com/362460453/PublicPlatform/tree/master/file-demo

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-10-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 晏霖 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 介绍
  • FastDFS 在 CentOS 下配置安装部署
  • 一、安装 libfastcommon 和 FastDFS
  • 二.配置 Tracker 服务
  • 三、配置 Storage 服务
  • 四、配置 fdfs_upload_file 上传文件
  • 四、配置Nginx 使用 fastdfs-nginx-module 模块
  • 五.配置fastdfs-nginx-module 模块
相关产品与服务
云服务器
云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档