销售型网站,摄影赚钱的网站,制作网站的模板下载,wordpress弹窗登录注册文章目录 1、简介1.1 分布式文件系统1.2 FastDFS1.3 FastDFS架构 2、环境搭建2.1 FastDFS安装2.1.1 安装前准备2.1.2 安装包下载2.1.3 安装 libfastcommon2.1.4 安装 libserverframe2.1.5 安装 FastDFS 2.2 FastDFS配置2.2.1 配置tracker2.2.1.1 创建 tracker 工作目录2.2.1.2 … 文章目录 1、简介1.1 分布式文件系统1.2 FastDFS1.3 FastDFS架构 2、环境搭建2.1 FastDFS安装2.1.1 安装前准备2.1.2 安装包下载2.1.3 安装 libfastcommon2.1.4 安装 libserverframe2.1.5 安装 FastDFS 2.2 FastDFS配置2.2.1 配置tracker2.2.1.1 创建 tracker 工作目录2.2.1.2 修改 tracker 配置文件 2.2.2 配置storage2.2.2.1 创建 storage 工作目录2.2.2.2 修改 storage 配置文件 2.3 FastDFS启动2.3.1 启动 tracker2.3.2 启动 storage2.3.3 验证 2.4 FastDFS关闭2.5 FastDFS测试2.5.1 配置client2.5.2 上传测试2.5.3 下载测试2.5.4 删除测试 2.6 HTTP访问2.6.1 安装nginx 和 fastdfs-nginx-module2.6.2 访问配置2.6.3 启动nginx2.6.4 访问测试 2.7 防火墙设置2.8 设置开机自启动 3、爬坑之路 1、简介
1.1 分布式文件系统
分布式文件系统Distributed File System是一个软件/软件服务器可以用来管理文件。这个软件所管理的文件通常在多个服务器节点上这些服务器节点通过网络相连构成一个庞大的文件存储服务器集群这些服务器都用于存储文件资源通过分布式文件系统来管理这些服务器上的文件。
分布式文件系统与传统文件系统对比 1.2 FastDFS
FastDFS 就是常见的分布式文件系统之一它是基于 C 语言开发的一个轻量级开源的高性能分布式文件系统。主要功能有文件存储、文件同步、文件访问(文件上传/下载)解决了大容量的文件存储和高并发访问的问题文件存取时实现了负载均衡。FastDFS 特别适合中大型网站以文件为载体的在线服务。开源地址https://github.com/happyfish100/fastdfs只有Linux版没有Window版。 1.3 FastDFS架构
FastDFS主要由两部分构成客户端、服务端。 客户端client用于连接操作FastDFS的java程序提供基本文件访问接口比如 upload、download、append、delete 等。 服务端Server由两部分构成跟踪器tracker、存储节点storage。 跟踪器tracker负责文件访问的调度和负载均衡负责管理所有的 Storage Server 和 group 组/卷。 存储节点storage负责文件存储文件同步/备份提供文件访问接口文件元数据管理。以 group 为单位每个 group 内可以有多台 Storage Server数据互为备份达到容灾的目的。每个 Storage 在启动以后会主动连接 Tracker告知自己所属 group 等存储相关信息并保持周期性心跳。 2、环境搭建
2.1 FastDFS安装
2.1.1 安装前准备
检查是否安装了gcc、libevent、libevent-devel
yum list installed | grep gcc
yum list installed | grep libevent
yum list installed | grep libevent-devel如果没有安装则需进行安装
yum install gcc libevent libevent-devel -y2.1.2 安装包下载
下载地址https://github.com/happyfish100 需要下载以下几个包需要注意的是最后一个libserverframe包是新引入的网络框架库目前安装FastDFS除了libfastcommon还需另外编译安装它否则编译不通过。 2.1.3 安装 libfastcommon
安装 FastDFS 前首先需要安装 libfastcommon 。
解压
cd /usr/local/fastdfs/
unzip libfastcommon-master.zip进入解压后的目录编译
cd libfastcommon-master/
./make.sh然后安装
./make.sh install2.1.4 安装 libserverframe
安装 FastDFS 前首先需要安装 libserverframe。
解压
cd /usr/local/fastdfs/
unzip libserverframe-master.zip进入解压后的目录编译
cd libserverframe-master/
./make.sh然后安装
./make.sh install2.1.5 安装 FastDFS
解压
cd /usr/local/fastdfs/
unzip fastdfs-master.zip进入解压后的目录编译
cd fastdfs-master/
./make.sh然后安装
./make.sh install安装成功后可以看到配置文件已经在/etc/fdfs/目录下 并且在/usr/bin/目录下已经有 fdfs 开头的文件都是启动Server的一些命令文件。 为了方便我们先将FastDFS解压目录conf里的 http.conf 和 mime.types 文件拷贝到 /etc/fdfs/ 目录下后续程序里使用会用到
cd /usr/local/fastdfs/fastdfs-master/conf/
cp http.conf /etc/fdfs/
cp mime.types /etc/fdfs/2.2 FastDFS配置
主要配置 tracker.conf 和 storage.conf 两个文件。
2.2.1 配置tracker
2.2.1.1 创建 tracker 工作目录
在配置Tracker之前需要先创建Tracker服务器的文件路径用于存储Tracker的数据文件和日志文件等。
mkdir -p /opt/fastdfs/tracker2.2.1.2 修改 tracker 配置文件
vi /etc/fdfs/tracker.conf#启用配置文件默认启用配置文件默认值
disabledfalse
#设置tracker的端口号通常采用22122这个默认端口 默认值
port22122
#设置tracker的数据文件和日志目录
base_path/opt/fastdfs/tracker
#设置http端口号默认值
http.server_port80802.2.2 配置storage
2.2.2.1 创建 storage 工作目录
步骤基本与配置Tracker一致创建Storage服务器的文件目录。
# 创建数据文件和日志目录
mkdir -p /opt/fastdfs/storage
# 创建实际文件存储目录
mkdir -p /opt/fastdfs/storage/files2.2.2.2 修改 storage 配置文件
vi /etc/fdfs/storage.conf#启用配置文件默认值
disabledfalse
#组名根据实际情况修改 (默认值)
group_namegroup1
#设置storage的端口号默认是23000同一个组的storage端口号必须一致 (默认值)
port23000
#设置storage数据文件和日志目录
base_path/opt/fastdfs/storage
#存储路径个数需要和store_path个数匹配 默认值
store_path_count1
#实际文件存储路径
store_path0/opt/fastdfs/storage/files
#tracker 服务器的 IP地址和端口号如果是单机搭建IP不要写127.0.0.1否则启动不成功
tracker_server192.168.157.140:22122
#设置 http 端口号 (默认值)
http.server_port88882.3 FastDFS启动
2.3.1 启动 tracker
fdfs_trackerd /etc/fdfs/tracker.conf2.3.2 启动 storage
fdfs_storaged /etc/fdfs/storage.conf2.3.3 验证
启动成功后查看进程
ps -ef | grep fdfs监测storage是否注册到了tracker中
fdfs_monitor /etc/fdfs/storage.conf查看端口监听情况22122和23000被正常监听。
#查看端口监听情况
netstat -unltp|grep fdfs查看新生成的data和logs目录
cd /opt/fastdfs/storage查看数据实际存储目录里面存放了 255*255 个文件夹
cd /opt/fastdfs/storage/files查看日志
tail -f /opt/fastdfs/storage/logs/storaged.log2.4 FastDFS关闭
# 停止tracker服务
fdfs_trackerd /etc/fdfs/tracker.conf stop
# 停止storage服务
fdfs_storaged /etc/fdfs/storage.conf stop2.5 FastDFS测试
2.5.1 配置client
测试主要使用client所以修改 client.conf 配置文件
vi /etc/fdfs/client.conf#配置数据存储路径
base_path /opt/fastdfs/storage
#配置tracker_server部署的访问地址
tracker_server 192.168.157.140:221222.5.2 上传测试
fdfs_test /etc/fdfs/client.conf upload /data/test.txt成功。
tracker_query_storage_store_list_without_group: server 1. group_name, ip_addr192.168.157.140, port23000group_namegroup1, ip_addr192.168.157.140, port23000
storage_upload_by_filename
group_namegroup1, remote_filenameM00/00/00/wKidjGWem4KAMz_DAAAAIxX_-fc253.txt
source ip address: 192.168.157.140
file timestamp2024-01-10 21:28:34
file size35
file crc32369097207
example file url: http://192.168.157.140/group1/M00/00/00/wKidjGWem4KAMz_DAAAAIxX_-fc253.txt
storage_upload_slave_by_filename
group_namegroup1, remote_filenameM00/00/00/wKidjGWem4KAMz_DAAAAIxX_-fc253_big.txt
source ip address: 192.168.157.140
file timestamp2024-01-10 21:28:34
file size35
file crc32369097207
example file url: http://192.168.157.140/group1/M00/00/00/wKidjGWem4KAMz_DAAAAIxX_-fc253_big.txt这里返回的文件目录结构如下
/group1/M00/00/00/wKidjGWem4KAMz_DAAAAIxX_-fc253.txt
/组名(group1)/磁盘(M00)/目录(00/00)/文件名注没有搭建集群默认只有一个组group1后缀名包含-m的为属性文件(meta)。 2.5.3 下载测试
# 需要指定group_name和remote_filename下载默认下载到当前目录
fdfs_test /etc/fdfs/client.conf download group1 M00/00/00/wKidjGWem4KAMz_DAAAAIxX_-fc253.txt2.5.4 删除测试
# 需要指定group_name和remote_filename下载默认下载到当前目录
fdfs_test /etc/fdfs/client.conf delete group1 M00/00/00/wKidjGWem4KAMz_DAAAAIxX_-fc253.txt2.6 HTTP访问
在文件上传的时候上传成功的信息中有提示我们可以通过某个路径去访问上传的文件但是我们不能直接访问这个路径。 FastDFS提供了一个Nginx扩展模块fastdfs-nginx-module利用该模块我们可以通过Nginx来对外访问查看FastDFS上的文件所以需要安装 nginx 和 fastdfs-nginx-module。 注如果是已经有nginx了只需要增加 fastdfs-nginx-module 模块就行也就是最后nginx只执行make 不执行install 因为不需要重新安装只需要生成新的nginx启动项即可。 2.6.1 安装nginx 和 fastdfs-nginx-module
安装nginx所需依赖
#安装nginx所需依赖
yum -y install pcre pcre-devel
yum -y install zlib zlib-devel
yum -y install openssl openssl-devel解压 nginx 和 fastdfs-nginx-module
cd /usr/local/fastdfs
tar -zxvf nginx-1.19.10.tar.gz
unzip fastdfs-nginx-module-master.zip解压后进入 nginx 目录编译安装 nginx并添加 fastdfs-nginx-module我这里为了和原有Nginx进行区分新安装的Nginx取名为nginx_fdfs
# 创建nginx安装目录
mkdir -p /usr/local/nginx_fdfscd /usr/local/fastdfs/nginx-1.19.10
# 配置指定安装路径添加模块
./configure --prefix/usr/local/nginx_fdfs --add-module/usr/local/fastdfs/fastdfs-nginx-module-master/src
# 编译
make
# 安装
make install安装完成后 2.6.2 访问配置
把 fastdfs-nginx-module-master/src 目录下的 mod_fastdfs.conf 拷贝到 /etc/fdfs 目录下这样才能正常启动 Nginx
cp /usr/local/fastdfs/fastdfs-nginx-module-master/src/mod_fastdfs.conf /etc/fdfs/在 /opt/fastdfs/ 目录下创建 nginx_mod 目录
mkdir -p /opt/fastdfs/nginx_mod修改 mod_fastdfs.conf 配置文件
vi /etc/fdfs/mod_fastdfs.conf#日志目录
base_path/opt/fastdfs/nginx_mod
#tracker服务器的IP地址以及端口号
tracker_server192.168.157.140:22122
#storage服务器的端口号(默认值)
storage_server_port23000
#文件url中是否有 group 名
url_have_group_name true
#存储路径
store_path0/opt/fastdfs/storage/files修改 nginx.conf 配置文件添加一个 location
vi /usr/local/nginx_fdfs/conf/nginx.confserver {listen 80;server_name localhost;location / {root html;index index.html index.htm;}# 拦截请求路径中包含 /group[1-9]/M0[0-9] 的请求用fastdfs的Nginx模块进行转发location ~ /group[1-9]/M0[0-9] { ngx_fastdfs_module; }}注ngx_fastdfs_module 这个指令不是Nginx本身提供的是扩展模块提供的根据这个指令找到FastDFS提供的Nginx模块配置文件然后找到Tracker最终找到Storage。 2.6.3 启动nginx
# 测试
/usr/local/nginx_fdfs/sbin/nginx -c /usr/local/nginx_fdfs/conf/nginx.conf -t
# 启动
/usr/local/nginx_fdfs/sbin/nginx -c /usr/local/nginx_fdfs/conf/nginx.conf# 停止
/usr/local/nginx_fdfs/sbin/nginx -c /usr/local/nginx_fdfs/conf/nginx.conf -s stop
# 重载
/usr/local/nginx_fdfs/sbin/nginx -c /usr/local/nginx_fdfs/conf/nginx.conf -s reload检查
/usr/local/nginx_fdfs/sbin/nginx -V2.6.4 访问测试
上传一张图片
fdfs_test /etc/fdfs/client.conf upload /data/1440.jpg访问http://192.168.157.140/group1/M00/00/00/wKidjGWfcrqASjDvAArtUI6z-8w526.jpg 2.7 防火墙设置
根据自己服务器情况开放端口
#开放端口22122、23000、80、8080、8888
firewall-cmd --add-port22122/tcp --permanent --zonepublic
firewall-cmd --add-port23000/tcp --permanent --zonepublic
firewall-cmd --add-port80/tcp --permanent --zonepublic
firewall-cmd --add-port8080/tcp --permanent --zonepublic
firewall-cmd --add-port8888/tcp --permanent --zonepublic
#重启防火墙(修改配置后要重启防火墙)
firewall-cmd --reload2.8 设置开机自启动
vi /etc/rc.d/rc.local在底部增加如下
fdfs_trackerd /etc/fdfs/tracker.conf
fdfs_storaged /etc/fdfs/storage.conf
/usr/local/nginx_fdfs/sbin/nginx -c /usr/local/nginx_fdfs/conf/nginx.conf修改文件权限
chmod x /etc/rc.d/rc.local3、爬坑之路
编译 FastDFS 时报错如下
gcc -Wall -D_FILE_OFFSET_BITS64 -D_GNU_SOURCE -g -O1 -DDEBUG_FLAG -c -o ../common/fdfs_global.o ../common/fdfs_global.c -I../common -I/usr/local/include
In file included from ../common/fdfs_global.c:21:0:
../common/fdfs_global.h:17:26: fatal error: sf/sf_global.h: No such file or directory#include sf/sf_global.h原因
需要先编译和安装 libserverframe新引入的网络框架库下载地址https://github.com/happyfish100 unzip libserverframe-master.zip
cd libserverframe-master/
./make.sh
./make.sh install编译安装完后即可正常编译安装 FastDFS 熬夜写的觉得有帮助来个赞吧 更多技术干货请持续关注程序员大佬超。 原创不易转载请务必注明出处。