当前位置:   article > 正文

阿里云部署FastDfs并配置外网访问_fastdfs 访问地址配置

fastdfs 访问地址配置

第一章 FastDFS简介

1.1、FastDFS的简介

FastDFS是一个开源的轻量级分布式文件系统,为互联网应用量身定做,简单、灵活、高效,采用C语言 开发,由阿里巴巴开发并开源。

FastDFS对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载、文件删除)等,解决了大容量文件存储的问题,特别适合以文件为载体的在线服务,如相册网站、文档网站、图片网站、视频网站等等。

FastDFS充分考虑了冗余备份、线性扩容等机制,并注重高可用、高性能等指标,使用FastDFS很容易搭建一套高性能的文件服务器集群提供文件上传、下载等服务。

1.2、FastDFS的整体架构

FastDFS文件系统由两大部分构成,一个是客户端,一个是服务端。

客户端通常指我们的程序,比如我们的Java程序去连接FastDFS、操作FastDFS,那我们的Java程序就是一个客户端,FastDFS提供专有API访问,目前提供了C、Java和PHP几种编程语言的API,用来访问FastDFS文件系统。

服务端由两个部分构成:一个是跟踪器(tracker),一个是存储节点(storage)。

跟踪器(tracker)主要做调度工作,在内存中记录集群中存储节点storage的状态信息,是前端Client和后端存储节点storage的枢纽。因为相关信息全部在内存中,Tracker server的性能非常高,一个较大的集群(比如上百个group)中有3台就足够了。

存储节点(storage)用于存储文件,包括文件和文件属性(meta data)都保存到存储服务器磁盘上,完成文件管理的所有功能:文件存储、文件同步和提供文件访问等。

1.3、FastDFS的官方网址

官方网址:https://link.csdn.net/?target=https%3A%2F%2Fgithub.com%2Fhappyfish100%2Ffastdfs

第二章 FastDFS单实例部署

2.1、环境准备

虚拟机的版本:VMware-workstation-full-15.5.6-16341506.exe
系统镜像版本:阿里云服务器CentOS-7.30-x86_64-bin-DVD1.iso,全新安装,桌面版,可上网
连接工具版本:SecureCRTSecureFX_HH_x64_7.0.0.326.zip

2.1.1 开启阿里云防火墙配置规则

主要开启 80端口、22122端口、22123端口

2.2、安装依赖

[root@caochenlei ~]# yum install -y gcc gcc-c++ perl perl-devel openssl openssl-devel pcre pcre-devel zlib zlib-devel libevent libevent-devel

  • 1
  • 2

2.3、安装libfastcommon库

下载:

[root@caochenlei ~]# wget https://github.com/happyfish100/libfastcommon/archive/V1.0.43.tar.gz

  • 1
  • 2

解压:

[root@caochenlei ~]# tar -zxvf V1.0.43.tar.gz

  • 1
  • 2

切换:

[root@caochenlei ~]# cd libfastcommon-1.0.43

  • 1
  • 2

编译:

[root@caochenlei libfastcommon-1.0.43]# ./make.sh

  • 1
  • 2

安装:

[root@caochenlei libfastcommon-1.0.43]# ./make.sh install
[root@caochenlei libfastcommon-1.0.43]# cd ~

  • 1
  • 2
  • 3

2.4、安装FastDFS

下载:

[root@caochenlei ~]# wget https://github.com/happyfish100/fastdfs/archive/V6.06.tar.gz
  • 1

解压:

[root@caochenlei ~]# tar -zxvf V6.06.tar.gz
  • 1

切换:

[root@caochenlei ~]# cd fastdfs-6.06
  • 1

编译:

[root@caochenlei fastdfs-6.06]# ./make.sh
  • 1

安装:

[root@caochenlei fastdfs-6.06]# ./make.sh install
  • 1

查看可执行文件:

[root@caochenlei fastdfs-6.06]# ll /usr/bin/fdfs*

  • 1
  • 2

在这里插入图片描述
查看配置文件:

[root@caochenlei fastdfs-6.06]# ll /etc/fdfs/

  • 1
  • 2

在这里插入图片描述
拷贝其它配置:

[root@caochenlei fastdfs-6.06]# cd conf

[root@caochenlei conf]# cp http.conf /etc/fdfs/
[root@caochenlei conf]# cp mime.types /etc/fdfs/

[root@caochenlei conf]# cd /etc/fdfs/

[root@caochenlei fdfs]# mv client.conf.sample client.conf
[root@caochenlei fdfs]# mv storage.conf.sample storage.conf
[root@caochenlei fdfs]# mv storage_ids.conf.sample storage_ids.conf
[root@caochenlei fdfs]# mv tracker.conf.sample tracker.conf

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

#3 2.5、配置FastDFS
配置 tracker :

修改tracker.conf的以下几项配置项:vi tracker.conf

#配置tracker存储数据的目录
base_path = /opt/fastdfs/tracker
创建相对应的文件夹:

[root@caochenlei fdfs]# mkdir -p /opt/fastdfs/tracker
  • 1

配置 storage :

修改storage.conf的以下几项配置项:vi storage.conf

#storage存储数据目录
base_path = /opt/fastdfs/storage
#真正存放文件的目录
store_path0 = /opt/fastdfs/storage/files
#注册当前存储节点的跟踪器地址
tracker_server = 阿里云外网IP+22122

创建相对应的文件夹:

[root@caochenlei fdfs]# mkdir -p /opt/fastdfs/storage
[root@caochenlei fdfs]# mkdir -p /opt/fastdfs/storage/files

  • 1
  • 2
  • 3

2.6、启动FastDFS
启动 tracker :

[root@caochenlei fdfs]# fdfs_trackerd /etc/fdfs/tracker.conf
  • 1

启动 storage :

[root@caochenlei fdfs]# fdfs_storaged /etc/fdfs/storage.conf
  • 1

查看启动情况:

[root@caochenlei fdfs]# ps -ef | grep fdfs
  • 1

检查监控信息:

[root@caochenlei fdfs]# fdfs_monitor /etc/fdfs/storage.conf
  • 1

查看数据目录:

[root@caochenlei fdfs]# ls /opt/fastdfs/storage/files/data/
  • 1

2.7、重启FastDFS
重启 tracker :

[root@caochenlei fdfs]# fdfs_trackerd /etc/fdfs/tracker.conf restart
waiting for pid [32335] exit ...
starting ...
  • 1
  • 2
  • 3

重启 storage :

[root@caochenlei fdfs]# fdfs_storaged /etc/fdfs/storage.conf restart
waiting for pid [32375] exit ...
starting ...
  • 1
  • 2
  • 3

查看启动情况:

[root@caochenlei fdfs]# ps -ef | grep fdfs

  • 1
  • 2

在这里插入图片描述

2.8、测试FastDFS
配置 client :

修改client.conf的以下几项配置项:vi client.conf

#client存储数据目录

base_path = /opt/fastdfs/client
#注册当前存储节点的跟踪器地址

tracker_server = 阿里云外网IP:22122
创建相对应的文件夹:

[root@caochenlei fdfs]# mkdir -p /opt/fastdfs/client
  • 1

创建 a.txt :

[root@caochenlei fdfs]# echo "Hello,FastDFS" > a.txt
  • 1

上传 a.txt :

格式:fdfs_test /etc/fdfs/client.conf upload 文件路径
  • 1
[root@caochenlei fdfs]# fdfs_test /etc/fdfs/client.conf upload /etc/fdfs/a.txt

  • 1
  • 2

在这里插入图片描述
地址格式,举例如下图:
在这里插入图片描述
查看上传后的数据文件:

[root@caochenlei fdfs]# ll /opt/fastdfs/storage/files/data/00/00/
总用量 16

-rw-r--r--. 1 root root 14 9月   5 20:39 wKjvgF9ThuWAGUrIAAAADtHNnrs806_big.txt
-rw-r--r--. 1 root root 49 9月   5 20:39 wKjvgF9ThuWAGUrIAAAADtHNnrs806_big.txt-m
-rw-r--r--. 1 root root 14 9月   5 20:39 wKjvgF9ThuWAGUrIAAAADtHNnrs806.txt
-rw-r--r--. 1 root root 49 9月   5 20:39 wKjvgF9ThuWAGUrIAAAADtHNnrs806.txt-m
  • 1
  • 2
  • 3
  • 4

删除 a.txt :

格式:fdfs_delete_file /etc/fdfs/client.conf (group_name)/(remote_filename)
  • 1
[root@caochenlei fdfs]# fdfs_delete_file /etc/fdfs/client.conf group1/M00/00/00/wKjvgF9ThuWAGUrIAAAADtHNnrs806.txt
[root@caochenlei fdfs]# ll /opt/fastdfs/storage/files/data/00/00/
总用量 8
-rw-r--r--. 1 root root 14 9月   5 20:39 wKjvgF9ThuWAGUrIAAAADtHNnrs806_big.txt
-rw-r--r--. 1 root root 49 9月   5 20:39 wKjvgF9ThuWAGUrIAAAADtHNnrs806_big.txt-m

[root@caochenlei fdfs]# fdfs_delete_file /etc/fdfs/client.conf group1/M00/00/00/wKjvgF9ThuWAGUrIAAAADtHNnrs806_big.txt
[root@caochenlei fdfs]# ll /opt/fastdfs/storage/files/data/00/00/
总用量 0

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

2.9、关闭FastDFS

关闭 tracker :

[root@caochenlei fdfs]# fdfs_trackerd /etc/fdfs/tracker.conf stop
waiting for pid [32441] exit ...
pid [32441] exit.

  • 1
  • 2
  • 3
  • 4

关闭 storage :

[root@caochenlei fdfs]# fdfs_storaged /etc/fdfs/storage.conf stop
waiting for pid [32453] exit ...
pid [32453] exit.
  • 1
  • 2
  • 3

查看启动情况:

[root@caochenlei fdfs]# ps -ef | grep fdfs
  • 1

注意问题:

没有搭建集群默认只有一个组group1
后缀名包含-m的为属性文件(meta)
在Linux中并没有磁盘一说,M00是虚拟的,它其实就是data目录
现在FastDFS已经安装完成,但现在外部还不能访问,有两大原因:一是防火墙未关闭、二是FastDFS默认不支持外部访问,想要访问需要继续往下学习

2.10、开启FastDFS外部访问

启动 tracker :

[root@caochenlei fdfs]# fdfs_trackerd /etc/fdfs/tracker.conf
  • 1

启动 storage :

[root@caochenlei fdfs]# fdfs_storaged /etc/fdfs/storage.conf

  • 1
  • 2

关闭防火墙:

[root@caochenlei fdfs]# service iptables stop
[root@caochenlei fdfs]# chkconfig iptables off

  • 1
  • 2
  • 3

回退根目录:

[root@caochenlei fdfs]# cd ~
  • 1

Nginx依赖:

[root@caochenlei ~]# yum install -y gcc gcc-c++ make libtool wget pcre pcre-devel zlib zlib-devel openssl openssl-devel
  • 1

Nginx下载:

[root@caochenlei ~]# wget http://nginx.org/download/nginx-1.18.0.tar.gz
  • 1

Nginx解压:

[root@caochenlei ~]# tar -zxvf nginx-1.18.0.tar.gz
  • 1

fastdfs-nginx-module下载:

[root@caochenlei ~]# wget https://github.com/happyfish100/fastdfs-nginx-module/archive/V1.22.tar.gz

  • 1
  • 2

fastdfs-nginx-module解压:

[root@caochenlei ~]# tar -zxvf V1.22.tar.gz
  • 1

#查看一下拓展模块所在路径,后边会用到这个路径

[root@caochenlei ~]# cd fastdfs-nginx-module-1.22/src/
[root@caochenlei src]# pwd
/root/fastdfs-nginx-module-1.22/src
  • 1
  • 2
  • 3

#回退到根目录,方便接下来的一系列安装

[root@caochenlei src]# cd ~
  • 1

Nginx及fastdfs-nginx-module安装:

注意:因为这个模块必须在Nginx的安装的过程中才能添加,所有我们需要重新安装一个Nginx,为了进行区分,我们把新安装的Nginx取名为nginx_fdfs

[root@caochenlei ~]# cd nginx-1.18.0
[root@caochenlei nginx-1.18.0]# ./configure --prefix=/usr/local/nginx_fdfs --add-module=/root/fastdfs-nginx-module-1.22/src
[root@caochenlei nginx-1.18.0]# make && make install
  • 1
  • 2
  • 3

注意:安装完成后的路径为:/usr/local/nginx_fdfs

Nginx命令(此处了解,先不要敲呢,跳过这步):

普通启动服务:/usr/local/nginx_fdfs/sbin/nginx
配置文件启动:/usr/local/nginx_fdfs/sbin/nginx -c /usr/local/nginx_fdfs/conf/nginx.conf
暴力停止服务:/usr/local/nginx_fdfs/sbin/nginx -s stop
优雅停止服务:/usr/local/nginx_fdfs/sbin/nginx -s quit
检查配置文件:/usr/local/nginx_fdfs/sbin/nginx -t
重新加载配置:/usr/local/nginx_fdfs/sbin/nginx -s reload
查看相关进程:ps -ef | grep nginx
FastDFS的Nginx访问配置:

将 /root/fastdfs-nginx-module-1.22/src/mod_fastdfs.conf 拷贝到 /etc/fdfs/ 目录下,这样才能正常启动Nginx

[root@caochenlei nginx-1.18.0]# cp /root/fastdfs-nginx-module-1.22/src/mod_fastdfs.conf /etc/fdfs/

  • 1
  • 2

修改mod_fastdfs.conf配置文件:

修改mod_fastdfs.conf的以下几项配置项:vi /etc/fdfs/mod_fastdfs.conf

#mod_fastdfs存储数据目录

base_path=/opt/fastdfs/nginx_mod
#注册当前存储节点的跟踪器地址

tracker_server=阿里云外网IP:22122
#路径中是否包含分组名称,我们为true

url_have_group_name=true
#真正存放文件的目录

store_path0=/opt/fastdfs/storage/files
创建相对应的文件夹:

[root@caochenlei nginx-1.18.0]# mkdir -p /opt/fastdfs/nginx_mod
  • 1

配置Nginx的拓展模块请求转发:

[root@caochenlei nginx-1.18.0]# vi /usr/local/nginx_fdfs/conf/nginx.conf
1
location ~ /group[1-9]/M0[0-9] {	
     ngx_fastdfs_module;  
}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

注意:ngx_fastdfs_module; #这个指令不是Nginx本身提供的,是扩展模块提供的,根据这个指令找到FastDFS提供的Nginx模块配置文件,然后找到Tracker,最终找到Stroager

启动带有Fastdfs模块的Nginx:

[root@caochenlei nginx-1.18.0]# /usr/local/nginx_fdfs/sbin/nginx -c /usr/local/nginx_fdfs/conf/nginx.conf
ngx_http_fastdfs_set pid=35500
  • 1
  • 2
[root@caochenlei fdfs]# fdfs_test /etc/fdfs/client.conf upload /etc/fdfs/a.txt
  • 1

在这里插入图片描述
在虚拟机外部浏览器访问上传的文件:

注意:直接输入example file url: http://121.199.2.55/group1/M00/00/00/eccCN2C0NHmAUtvBAAAADtHNnrs372_big.txt

在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/382727
推荐阅读
相关标签
  

闽ICP备14008679号