linux下载安装搭建、卸载FastDfs文件服务器、配置多存储路径(轮询、最大内存选择)、nginx反向代理实现图片预览、常用命令

linux下载安装搭建、卸载FastDfs文件服务器、配置多存储路径(轮询、最大内存选择)、nginx反向代理实现图片预览、常用命令
Springboot整合Fastdfs上传图片、缩略图、下载文件、需求:文件转存方案(springboot整合线程池多线程实现)

简介

FastDFS 是一个开源的高性能分布式文件系统(DFS)。 它的主要功能包括:文件存储,文件同步和文件访问,以及高容量和负载平衡。主要解决了海量数据存储问题,特别适合以中小文件(建议范围: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:客户端,上传下载数据的服务器,也就是我们自己的项目所部署在的服务器。

如图所示,基本架构图

在这里插入图片描述

其实,我们的TrackerStorage服务可以安装在不同的服务器上,当然安装在同一台服务器也可。Tracker是作为管理者,主要做调度工作。Storage就是主要用来存放图片文件的地方。

FastDFS文件上传过程

  1. client询问tracker上传到的storage。

  2. tracker返回一台可用的storage。

  3. client直接和storage通讯完成文件上传,返回文件信息。

(网图)

在这里插入图片描述

FastDFS文件下载过程

  1. client询问tracker下载文件的storage,参数为文件标识(卷名和文件名);

  2. tracker返回一台可用的storage;

  3. client直接和storage通讯完成文件下载。

需要说明的是,client为使用FastDFS服务的调用方,client也应该是一台服务器,它对tracker和storage的调用均为服务器间的调用。

(网图)

在这里插入图片描述

下载安装配置FastDFS

下载

地址:https://github.com/happyfish100,正常来讲需要 fastdfslibfastcommon,如果需要进行图片预览,就需要fastdfs-nginx-module,另外还需要安装好nginx来做反向代理。

版本自己来选择即可,我这里是 fastdfs是6.06版本,libfastcommon是1.0.43版本。

在这里插入图片描述

  • 下载方式一:直接使用 wget 下载,如果太慢,可以去github下载,然后上传到服务器上即可。

    wget -c "https://github.com/happyfish100/fastdfs/archive/V6.06.tar.gz" \
    -O fastdfs-6.06.tar.gz
    
    wget -c "https://github.com/happyfish100/libfastcommon/archive/V1.0.43.tar.gz" \
    -O libfastcommon-1.0.43.tar.gz
    
    wget -c "https://github.com/happyfish100/fastdfs-nginx-module/archive/V1.22.tar.gz" \
    -O fastdfs-nginx-module-1.22.tar.gz
    
    wget -c http://nginx.org/download/nginx-1.17.7.tar.gz
    
  • 下载方式二:直接在github下载。

安装

需要先安装基础环境

yum -y install make zlib zlib-devel gcc-c++ libtool  openssl openssl-devel
yum -y install libevent

再安装libfastcommon函数库。

tar -zxvf libfastcommon-1.0.43.tar.gz

进入libfastcommon-1.0.43目录,编译然后安装

./make.sh
./make.sh install

检查一下

ls /usr/lib64|grep libfastcommon
ls /usr/lib|grep libfastcommon

出现libfastcommon.so即可。

ok,然后fastdfs

tar -zxvf fastdfs-6.06.tar.gz

进入fastdfs目录,编译安装

可以先看一下fastdfs的安装配置目录所在信息,make.sh文件中

在这里插入图片描述

./make.sh
./make.sh install

配置

配置tracker

在/etc/fdfs目录中,这个目录中都是一些配置文件

直接复制一个tracker.conf.sample,改名为 tracker.conf

在这里插入图片描述

cp tracker.conf.sample tracker.conf

编辑tracker.conf,vim tracker.conf

# 基本工作目录
base_path=/fastdfs/tracker

# 设置store_path, 0:是轮询方式  2:选择剩余最大的目录存放文件,根据自己的需要选择即可
store_path = 0

题外话:如果设置了store_path是轮询方式,但是后面测试上传文件的时候总是只上传到一个文件夹中,那么可能是使用命令测试上传的 指令没有选对。一下两种上传方式,一种是测试上传的,一种是普通文件的。可以使用普通上传即可。(此部分读者可以略过,因为如果按照本文上传方式,就是使用的普通方式。)

# 测试上传
/usr/bin/fdfs_test /etc/fdfs/client.conf upload a.jpg

# 普通上传的(推荐,此上传方式会被tracker.conf中的store_path影响,到底是选择哪个存储路径)
/usr/bin/fdfs_upload_file /etc/fdfs/client.conf a.jpg

base_path配置的路径一定要存在,否则可能会报错,创建个目录

mkdir -p /fastdfs/tracker

配置storage

复制一个storage.conf.sample改名为 storage.conf

cp storage.conf.sample storage.conf

编辑文件vim storage.conf

# 修改组名
group_name=wlhGroup
# 修改storage的工作空间(base_path路径必须存在)
base_path=/fastdfs/storage

# 配置多存储路径的数量
store_path_count = 2

# 修改storage的多存储空间
store_path0=/fastdfs/storage/d0
store_path1=/fastdfs/storage/d1

# 修改tracker的地址和端口号,用于心跳
tracker_server=192.168.0.101:22122

# 配置http服务端口,和nginx中的监听端口要一致
http.server_port = 80

上面配置的base_path并不是文件存储的位置,而是storage工作的路径,storage启动时,该路径下会生成datalogs目录,data里面是工作的一些pid文件等,logs里面是日志信息(排查错误时可以看这个)。

如上面配置的storage.conf文件的base_path(工作目录)和 store_path(文件存储目录)

在这里插入图片描述

注意base_path和store_path{index}的目录一定要存在,创建一下。

mkdir -p /fastdfs/storage
mkdir -p /fastdfs/storage/d0
mkdir -p /fastdfs/storage/d1

启动

启动tracker

/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf

启动storage

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

注意:tracker和storage的相关文件都在我们之前配置的base_path中,包含数据、日志等,当需要排查错误时,一定要记得去查看下日志!!!

按照我们以上配置的路径,tracker的日志文件在 /fastdfs/tracker/logs/trackerd.log文件中

storage的日志文件在/fastdfs/storage/logs/storaged.log文件中

测试上传

复制修改修改client.conf文件,改好配置

复制

cp client.conf.sample client.conf

修改

vim client.conf

内容如下:

base_path = /fastdfs/client
tracker_server = 192.168.0.101:22122

要记得把base_path的目录创建一下

mkdir -p /fastdfs/client

随意上传一个文件

/usr/bin/fdfs_upload_file /etc/fdfs/client.conf a.jpg

查看结果

在这里插入图片描述

看到以上信息,说明上传是没有问题了。包括我们设置的group_name都返回了。

图片预览

如果有图片预览的需求,需要把nginx相关的配置也搞上。

安装pcre

yum -y install pcre pcre-devel

解压

tar -zxvf nginx-1.17.7.tar.gz
tar -zxvf fastdfs-nginx-module-1.22.tar.gz

进入nginx目录后,添加 http_stub_status_module 模块

./configure --prefix=/usr/local/nginx --with-http_stub_status_module

进入fastdfs-nginx-module-1.22/src目录,编辑配置文件,将文件中路径 /usr/local换成 /usr

vim config
:%s+/usr/local+/usr

在这里插入图片描述

进入到nginx的目录中,添加fastdfs-nginx-module。这里注意fastdfs-nginx-module的安装位置.改成你自己的。

./configure --add-module=/env/fastdfs-nginx-module-1.22/src/

然后编译安装

make && make install

复制并修改fastdfs-ngin-module中的配置文件

cp /env/fastdfs-nginx-module-1.22/src/mod_fastdfs.conf /etc/fdfs/

vim /etc/fdfs/mod_fastdfs.conf

修改为:

base_path和store_path和storage.conf中尽量一致。

connect_timeout=10
# tracker的地址
tracker_server=192.168.0.101:22122
# url中包含group_name
url_have_group_name = true
# 配置group_name,要和 storage中配置的一样
group_name=wlhGroup

store_path_count=2
base_path=/fastdfs/storage
store_path0=/fastdfs/storage/d0
store_path1=/fastdfs/storage/d1

进入fastdfd源码conf目录,将http.conf,mime.types两个文件拷贝到/etc/fdfs/目录下

cp /env/fastdfs-6.06/conf/http.conf /env/fastdfs-6.06/conf/mime.types /etc/fdfs/

编辑nginx配置

vim /usr/local/nginx/conf/nginx.conf
    listen       80;
    server_name  192.168.0.101;

    #charset koi8-r;

    #access_log  logs/host.access.log  main;

    location / {
    root   html;
    index  index.html index.htm;
    }

    location ~/wlhGroup/M00 {
    root  /fastdfs/storage/d0;
    ngx_fastdfs_module;
    }

    location ~/wlhGroup/M01 {
    root /fastdfs/storage/d1;
    ngx_fastdfs_module;
    }

在这里插入图片描述

启动nginx

/usr/local/nginx/sbin/nginx

上传一个文件

在这里插入图片描述

看到返回了地址,我们去浏览器访问一下。没问题

在这里插入图片描述

忠告:在开发中,可能会遇见很多奇奇怪怪的问题,一定要学会看日志!!再去查阅资料,否则会导致根本无从下手,效率极低。

dfs常用命令

# 监控服务器状态命令:fdfs_monitor
/usr/bin/fdfs_monitor /etc/fdfs/client.conf

# 上传文件
/usr/bin/fdfs_upload_file /etc/fdfs/client.conf a.jpg

# 下载文件
/usr/bin/fdfs_download_file /etc/fdfs/client.conf group_name/文件地址

# 删除文件
/usr/bin/fdfs_delete_file /etc/fdfs/client.conf group_name/文件地址

# 启动 tracker服务
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf

# 重启/终止 tracker服务
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart/stop

# 启动 storage服务
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf

# 重启/终止 storage服务
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart/stop

如果重启/停止tracker或storage服务没有生效,那么直接Kill杀掉进程即可。

nginx常用命令

要记得先把nginx的目录配置到 环境变量中。

vim /etc/profile

export PATH=$PATH:/usr/local/nginx/sbin

记得刷一下

source /etc/profile

常用命令

nginx -s reload #重新加载Nginx配置文件,然后以优雅的方式重启Nginx

nginx -s stop #强制停止Nginx服务

nginx -s quit #优雅地停止Nginx服务(即处理完所有请求后再停止服务)

killall nginx #杀死所有nginx进程

卸载fastDFS

可以参考这篇文章fastDFS如何卸载

参考文章

用FastDFS一步步搭建文件管理系统

FastDFS原理详解及部署使用

Linux搭建FastDFS环境

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值