Centos7.5 安装配置fastdfs 并配置nginx

前言

FastDFS是一个开源的轻量级分布式文件系统,由跟踪服务器(tracker server)、存储服务器(storage server)和客户端(client)三个部分组成,主要解决了海量数据存储问题,特别适合以中小文件(建议范围:4KB < file_size <500MB)为载体的在线服务。

(1)每次上传文件后都会返回一个地址,用户需要自己保存此地址。

(2)为了支持大容量,存储节点(服务器)采用了分卷(或分组)的组织方式。存储系统由一个或多个卷组成,卷与卷之间的文件是相互独立的,所有卷的文件容量累加就是整个存储系统中的文件容量。一个卷可以由一台或多台存储服务器组成,一个卷下的存储服务器中的文件都是相同的,卷中的多台存储服务器起到了冗余备份和负载均衡的作用。

安装tracker服务

安装依赖

yum -y install gcc-c++ libevent

安装基础模块 libfas

# 进入编译目录
cd /usr/local/lib/fastdfs
# 克隆文件
git clone https://github.com/happyfish100/libfastcommon.git
# 编译
cd libfastcommon/
./make.sh
./make.sh install

安装fastdfs

cd /usr/local/lib/fastdfs
git clone https://github.com/happyfish100/fastdfs.git
cd fastdfs
./make.sh
./make.sh install

此时会在/etc/fdfs目录下生成几个文件

tracker.conf.sample //负责均衡调度服务器配置文件
client.conf.sample //客户端上传配置文件
storage.conf.sample//文件存储服务器配置文件
storage_ids.conf.sample // 集群配置

还需要以下两个文件

# http.conf //http服务器配置文件
# mime.types //文件类型配置文件
cp /usr/local/lib/fastdfs/fastdfs/conf/http.conf /etc/fdfs/http.conf
cp /usr/local/lib/fastdfs/fastdfs/conf/mime.types /etc/fdfs/mime.types

配置tracker 基本参数

cp tracker.conf.sample tracker.conf
vim tracker.conf
# 如果只能本机上传  则改为本机ip如果允许所有IP 则不改
bind_addr= 
# tracker 存放日志和数据的目录
base_path=/home/yuqing/fastdfs
# tracker http 端口 
http.server_port=8080 改为 http.server_port=80

启动 tracker

fdfs_trackerd /etc/fdfs/tracker.conf

设置开机启动

/sbin/chkconfig --add fdfs_trackerd

配置storage 基本配置

cp /etc/fdfs/storage.conf.sample /etc/fdfs/storage.conf
#修改storage server的配置文件:
vm /etc/fdfs/storage.conf
# 允许访问的地址
bind_addr= 
#base_path表示storage存放数据的目录
base_path=/home/yuqing/fastdfs 改为 base_path=/data/fastdfs
#修改storage的资源存放路径
store_path0=/home/yuqing/fastdfs 改为 store_path0=/data/fastdfs
#如果有多个挂载磁盘则定义多个store_path,如下
#store_path1=......
#store_path2=......
修改storage的对应的tracker_server的ip地址和端口
tracker_server=192.168.209.121:22122
#如果有多个则配置多个tracker_server
tracker_server=......
tracker_server=......
# http 服务地址
http.server_port=8888 

启动 tracker

fdfs_storaged /etc/fdfs/storage.conf

设置开机启动

/sbin/chkconfig --add fdfs_storaged

使用fastdfs 提供的测试工具上传文件

修改配置

# 存放日志的目录
base_path=...
# tracker 的配置   请与storage.conf 保持一致
tracker_server = 172.18.36.145:22122
# 请与tracker.conf保持一致
http.tracker_server_port = 8080

测试上传

fdfs_test /etc/fdfs/client.conf upload fdfs_tracker.sh

如果成功则会返回以下结果

This is FastDFS client test program v6.06

Copyright (C) 2008, Happy Fish / YuQing

FastDFS may be copied only under the terms of the GNU General
Public License V3, which may be found in the FastDFS source kit.
Please visit the FastDFS Home Page http://www.fastken.com/
for more detail.

[2020-06-09 14:41:11] DEBUG - base_path=/usr/local/lib/fastdfs/runtime/client, connect_timeout=5, network_timeout=60, tracker_server_count=1, anti_steal_token=0, 
anti_steal_secret_key length=0, use_connection_pool=0, g_connection_pool_max_idle_time=3600s, use_storage_id=0, storage server id count: 0

tracker_query_storage_store_list_without_group:
    server 1. group_name=, ip_addr=172.18.36.145, port=23000

group_name=group1, ip_addr=172.18.36.145, port=23000
storage_upload_by_filename
group_name=group1, remote_filename=M00/00/00/rBIkkV7fLweAJDyoAAAA7uq26lQ0731.sh
source ip address: 172.18.36.145
file timestamp=2020-06-09 14:41:11
file size=238
file crc32=3937856084
example file url: http://172.18.36.145:8080/group1/M00/00/00/rBIkkV7fLweAJDyoAAAA7uq26lQ0731.sh
storage_upload_slave_by_filename
group_name=group1, remote_filename=M00/00/00/rBIkkV7fLweAJDyoAAAA7uq26lQ0731_big.sh
source ip address: 172.18.36.145
file timestamp=2020-06-09 14:41:11
file size=238
file crc32=3937856084
example file url: http://172.18.36.145:8080/group1/M00/00/00/rBIkkV7fLweAJDyoAAAA7uq26lQ0731_big.sh

配置nginx 访问文件 (需要在storage上配置)

nginx 本身没有fastdfs 模块 需要在编译的时候加入fastdfs -nginx 模块
下载fastdfs-nginx-module

git clone https://github.com/happyfish100/fastdfs-nginx-module.git

下载nginx 源码及安装编译过程可参照
https://www.jianshu.com/p/da8bc470836c

只需要在configure的时候加入参数

# 加入附加模块
... --add-module=/usr/local/lib/fastdfs/fastdfs-nginx-module/src

然后按照nginx 正常流程make make install

复制并配置module 配置文件

cp /usr/local/lib/fastdfs/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs/mod_fastdfs.conf
vim /etc/fdfs/mod_fastdfs.conf

# fastdfs-nginx 日志目录
base_path=
# 跟storage.conf 里配置一样
tracker_server=
# 跟storage.conf 的配置一样
store_path0=
# http链接是否有groupname
url_have_group_name = true

修改nginx 的配置
加入如下server

server {
listen 80;
server_name 192.168.5.72;
    location /group1/M00 {
        ngx_fastdfs_module;
    }
}

集群与高可用

集群只需要部署多个tracker storage 服务就可以了

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,884评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,755评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,369评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,799评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,910评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,096评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,159评论 3 411
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,917评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,360评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,673评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,814评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,509评论 4 334
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,156评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,882评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,123评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,641评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,728评论 2 351