Linux环境搭建FastDFS文件服务器(附带Nginx安装)

news2025/1/11 22:37:45

本文主要介绍在linux服务器如何搭建FastDFS文件服务器。大概分为9个步骤,由于内容较为繁琐。下面带你入坑!

首先简单介绍一下FastDFS是淘宝资深架构师余庆老师主导开源的一个分布式文件系统,用C语言编写。适应与中小企业,对文件不分块。

主要有Tracker(管理) 和Storage (储存)。
返回路径= 组名 /虚拟盘符{M00/00/02} /文件名
在这里插入图片描述

1、下载软件包

wget https://github.com/happyfish100/libfastcommon/archive/V1.0.7.tar.gz

wget http://jaist.dl.sourceforge.net/project/fastdfs/FastDFS%20Nginx%20Module%20Source%20Code/fastdfs-nginx-module_v1.16.tar.gz

wget https://github.com/happyfish100/fastdfs/archive/V5.05.tar.gz

wget http://nginx.org/download/nginx-1.18.0.tar.gz

2、安装gcc

yum -y install gcc gcc-c++ autoconf pcre pcre-devel make automake

yum -y install wget httpd-tools vim

3、安装 libfastcommon

#进入libfastcommon压缩包目录解压,编译,安装
tar -zxvf libfastcommonV1.0.7.tar.gz

#进入解压的libfastcommon-1.0.7目录,编译
./make.sh
./make.sh install

#最后,将libfastcommon.so文件复制到usr/lib下 (请按照自己的实际文件路径修改)
cp /data/fastDFS/software/libfastcommon-1.0.7/src/libfastcommon.so /usr/lib

4、安装 FastDFS

解压FastDFS_v5.05.tar.gz,
tar -zxvf FastDFS_v5.05.tar.gz

编译FastDFS
./make.sh
安装FastDFS
./make.sh install

安装成功后将目录conf内的文件拷贝到/etc/fdfs目录下(请按照实际文件路径修改):
cp /data/fastDFS/software/FastDFS/conf/* /etc/fdfs/

5、安装 tracker

进入/etc/fdfs目录,修改tracker.conf文件。如果不存在,就拷贝tracker.conf.sample文件为tracker.conf,然后再修改:
base_path=/home/yuqing/fastdfs 修改成 base_path=/home/logs/fastdfs (注解:日志文件)

http.server_port=8080 修改成 http.server_port=80 (注解:端口,80是方便默认)

store_group=group1 (注解:组名)
其中,/home/logs/fastdfs目录如果不存在,就创建一个。

之后,就启动tracker,
fdfs_trackerd /etc/fdfs/tracker.conf start

查看是启动成功(出现如下提示,表示启动成功):restart重启
netstat -unltp | grep tracker

在这里插入图片描述

6、安装storage

由于storage和tracker运行的都是fastDFS程序,每一台服务器都部署一台fasfDFS,一台服务器是tracker,一台是storage

修改storage.conf文件。如果不存在,就拷贝storage.conf.sample文件为storage.conf,然后再修改:
base_path=/home/yuqing/fastdfs 修改成 base_path=/home/logs/storage (日志路径)
store_path0=/home/yuqing/fastdfs 修改成 store_path0=/home/data/storage  (实际储存文件路径,可以配置多个)
tracker_server=192.168.209.121:22122 修改成 tracker_server=192.168.2.231:22122 (ip为服务器ip地址,如果不确认,用ifconfig查询,连接tracker服务器地址)
group_name=group1 (必须和tracker的组名相同)
http.server_port=80 (这个端口也要改)
其中,如果/home/logs/storage和/home/data/storage不存在,就创建该目录

然后,就启动storage
fdfs_storaged /etc/fdfs/storage.conf start

查看是否成功(出现如下提示,表示启动成功)
netstat -unltp | grep storage

在这里插入图片描述
最后,查看tracker和storage是不是在通信:

fdfs_monitor /etc/fdfs/storage.conf

如下提示,出现ACTIVE,表示二者均正常启动,至此就可以进行上传文件测试了。
在这里插入图片描述

7、测试图片上传

Tracker和storage都已经安装完成,使用命令测试文件上传:
FastDFS提供一个文件上传命令:usr/bin/fdfs_test 测试文件上传。测试上传需要连接tracker服务器,连接storage服务器。因此需要指定一个配置文件:client.conf配置文件,通过Client.conf连接tracker服务器。

修改/etc/fdfs下client.conf 
base_path=/home/logs/client (日志目录)
tracker_server=192.168.2.231:22122  (tracker端口,ip为服务器ip,ifconfig能查到)

测试命令
/usr/bin/fdfs_test /etc/fdfs/client.conf upload anti-steal.jpg

如下图返回地址则成功
在这里插入图片描述

8、安装Nginx

#gcc安装 
yum install gcc-c++

#PCRE pcre-devel 安装
yum install -y pcre pcre-devel

# zlib 安装
yum install -y zlib zlib-devel

#OpenSSL 安装
yum install -y openssl openssl-devel

解压、编译、安装。
tar -zxvf nginx-1.18.0.tar.gz
cd nginx-1.18.0
./configure
make
make install

9、安装 fastdfs-nginx-module

  1. 首先解压fastdfs-nginx-module_v1.16.tar.gz
  2. 修改/fastdfs-nginx-module/src/config文件
  3. 去掉所有的local(三个)
    在这里插入图片描述
拷贝usr/lib64目录下库文件libfdfsclient.so
cp /usr/lib64/libfdfsclient.so /usr/lib

在nginx安装目录下执行如下命令:把module添加nginx中。通过设置安装参数方式添加模块。
cd nginx-1.18.0
./configure --add-module=../fastdfs-nginx-module/src
注意:我这里nginx-1.18.0和fastdfs-nginx-module在同一级目录,所以这样写

重新安装编译
make && make install

查看Nginx的模块
/usr/local/nginx/sbin/nginx -V

复制 fastdfs-nginx-module 源码中的配置文件到/etc/fdfs 目录, 并修改
cd fastdfs-nginx-module/src
cp mod_fastdfs.conf /etc/fdfs/

进入/etc/fdfs/修改mod_fastdfs.conf如下配置,其他默认
# 连接超时时间
connect_timeout=10

# Tracker Server
tracker_server=192.168.2.231:22122(ip地址为本地地址,用ifconfig查询)

# StorageServer 默认端口
storage_server_port=23000

# 如果文件ID的uri中包含/group**,则要设置为true
url_have_group_name = true

# Storage 配置的store_path0路径,必须和storage.conf中的一致
store_path0=/home/data/storage
# the base path to store log files
base_path=/home/logs/storage

配置Nginx ,进入/usr/local/nginx/conf目录下修改nginx.conf
注意:无论你在哪解压安装的。必须进这个目录/usr/local/nginx/conf下修改nginx.conf
vim nginx.conf

修改配置,其它的默认
在80端口下添加fastdfs-nginx模块

location ~/group([0-9])/M00 {
    ngx_fastdfs_module;
}
注意:下面#user  nobody;改成 #user  root;

注意:
  listen 80 端口值是要与 /etc/fdfs/storage.conf 中的 http.server_port=80 (前面改成80了)相对应。如果改成其它端口,则需要统一,同时在防火墙中打开该端口
  location 的配置,如果有多个group则配置location ~/group([0-9])/M00 ,没有则不用配group。
在文件存储目录下创建软连接,将其链接到实际存放数据的目录,注意这个文件存储的位置后面多个data目录是系统自动生成的
ln -s /home/data/storage/data /home/data/storage/data/M00

启动nginx

#启动nginx
cd /usr/local/nginx/sbin/
./nginx 

直接启动
/usr/local/nginx/sbin/nginx

设置开机自启
vim /etc/rc.d/rc.local 
加入:/usr/local/nginx/sbin/nginx

使/etc/rc.d/rc.local变成可执行文件
chmod +x /etc/rc.d/rc.local

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1388185.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【教3妹学编程-算法题】3008. 找出数组中的美丽下标 II

3妹:呜呜,烦死了, 脸上长了一个痘 2哥 : 不要在意这些细节嘛,不用管它,过两天自然不就好了。 3妹:切,你不懂,影响这两天的心情哇。 2哥 : 我看你是不急着找工作了啊, 工作…

Python - 深夜数据结构与算法之 LRUCache

目录 一.引言 二.LRU Cache 简介 1.实现特性 2.工作流程 三.LRU Cache 实战 1.HashMap ListNode 2.OrderedDict 四.总结 一.引言 LRU 即 Least Recently Used 意为最近使用,它是一种局部 Cache 的缓存方法,用于存储最近使用的元素,…

2023.1.15 关于 Redis 持久化 RDB 策略详解

目录 Redis 持久化 Redis 实现持久化的两大策略 RDB 策略 手动触发 save 命令 bgsave 命令 bgsave 命令执行流程 自动触发 rdb 文件 实例演示一 实例演示二 实例演示三 实例演示四 RDB 策略的优缺点 Redis 持久化 什么是持久化? 回答: 将数据存…

高效视频剪辑:视频合并让视频焕然一新,添加背景音乐更动听

随着社交媒体和数字内容的普及,视频剪辑已成为一项常用的技能。除了基本的剪辑技巧外,添加合适的背景音乐也是提升视频质量的方法。下面来看云炫AI智剪的高效视频剪辑技巧——如何批量合并视频,添加动听的背景音乐。 视频合并后的效果展示&a…

Jenkins之pipeline

安装插件 Pipeline Pipeline: Stage View Plugin 创建任务 配置 demo 开始实践 拉取git仓库代码 checkout scmGit(branches: [[name: */main]], extensions: [], userRemoteConfigs: [[url: http://178.119.30.133:8929/root/mytest.git]])通过SonarQube做质量检测 sh …

MAC iterm 显示git分支名

要在Mac上的iTerm中显示Git分支名,您需要使用一个名为“Oh My Zsh”的插件。Oh My Zsh是一个流行的Zsh框架,它提供了许多有用的功能和插件,包括在终端中显示Git分支名。 以下是在iTerm中显示Git分支名的步骤: 1、安装Oh My Zsh&…

芯片烧写工具

问题描述 最近出了一个机器变砖的问题,一些用户使用的设备,头一天晚上用的好好的,第二天来一上电开机就起不来了。 然后就寄回来,返厂维修。一些是因为部分电子器件坏了,还有一些是文件系统问题,重新升级一…

基于Redis+Lua的分布式限流

本文已收录至我的个人网站:程序员波特,主要记录Java相关技术系列教程,共享电子书、Java学习路线、视频教程、简历模板和面试题等学习资源,让想要学习的你,不再迷茫。 前面我们了解了如何利用Nginx做网关层限流&#xf…

XSS漏洞:xss-labs靶场通关

xss系列往期文章: 初识XSS漏洞-CSDN博客 利用XSS漏洞打cookie-CSDN博客 目录 第一关 第二关 第三关 第四关 第五关 第六关 第七关 第八关 第九关 第十关 第十一关 第十二关 第十三关 第十四关 第十五关 第十六关 第十七关 第十八关 第十九关 …

概率论与数理统计————古典概型、几何概型和条件概率

一、古典概型 特点 (1)有限性:试验S的样本空间的有限集合 (2) 等可能性:每个样本点发生的概率是相等的 公式:P(A) A为随机事件的样本点数;S是样本…

深度学习笔记(四)——使用TF2构建基础网络的常用函数+简单ML分类实现

文中程序以Tensorflow-2.6.0为例 部分概念包含笔者个人理解,如有遗漏或错误,欢迎评论或私信指正。 截图和程序部分引用自北京大学机器学习公开课 TF2基础常用函数 1、张量处理类 强制数据类型转换: a1 tf.constant([1,2,3], dtypetf.floa…

Docker部署Jira、Confluence、Bitbucket、Bamboo、Crowd,Atlassian全家桶

文章目录 省流:注意:1.docker-compose文件2.其他服务都正常启动,唯独Bitbucket不行。日志错误刚启动时候重启后查询分析原因再针对第一点排查看样子是安装的bitbucket和系统环境有冲突问题? 结论: 省流: b…

Flink-SQL——时态表(Temporal Table)

时态表(Temporal Table) 文章目录 时态表(Temporal Table)数据库时态表的实现逻辑时态表的实现原理时态表的查询实现时态表的意义 Flink中的时态表设计初衷产品价格的例子——时态表汇率的例子——普通表 声明版本表声明版本视图声明普通表 一个完整的例子测试数据代码实现测试…

MATLAB - 使用 TOPP-RA 求解器生成带约束条件的时间最优轨迹

系列文章目录 前言 本例演示如何生成满足速度和加速度限制的轨迹。该示例使用了 contopptraj 函数,该函数使用可达性分析 (RA) 求解受约束的时间最优路径参数化 (TOPP) 轨迹。 一、示例背景 本例解决的是 TOPP 问题,这是一个机器人问题,其目…

vue3+vite项目构建时报错npm ERR! code EPERMnpm ERR! syscall mkdir...

vscode终端中输入npm create vitelatest vueviteproject1 -- --vue命令后报错 具体报错如下: PS D:\project> npm create vitelatest vueviteproject1 -- --vue >> npm ERR! code EPERM npm ERR! syscall mkdir npm ERR! path D:\node\node_cache\_cac…

磁盘raid1降级后,mdxxx rota发生变化

背景 虚拟机系统盘vda后端使用宿主机ssd盘lvm组raid1,虚拟机内部查看vda磁盘类型(rota=1):机械硬盘,vda后端raid1降级导致磁盘类型降级:rota 0---->1,vda磁盘类型显示不正确,应该是ssd类型(rota=0); 分析 1.基础 1.1 linux磁盘类型 Rota表示磁盘类型:(1)0,表…

收银系统源码-智慧新零售系统框架

智慧新零售系统是一套线下线上打通的收银系统,主要给门店提供含线下收银、线上小程序商城、ERP进销存、精细化会员管理、丰富营销插件等为一体的智慧行业解决方案。智慧新零售系统有合伙人、代理商、商户、门店、收银员/导购员等角色,每个角色有相应的权…

从物联网到数字孪生:智慧社区的未来之路

一、物联网在智慧社区中的应用与挑战 随着科技的飞速发展,物联网技术已经深入到我们生活的方方面面,尤其在智慧社区的建设中发挥着举足轻重的作用。物联网通过连接各种设备和系统,为社区居民提供了更便捷、高效的生活方式,同时也…

TortoiseGit 2.15.0.0 安装与配置(图文详细教程)

TortoiseGit的安装与配置 TortoiseGit是Tortoise为Git提供的版本可视化工具,简化了记忆Git命令行的过程,将命令行可视化。 确保自己电脑中已经下载好了git 官网下载TortoiseGit Download – TortoiseGit – Windows Shell Interface to Git 选择64-bi…

net8 rdl rdlc ssrs报表设计器表头合并单元格(垂直合并)

报表设计器下载地址 https://www.microsoft.com/zh-cn/download/details.aspx?id53613 或者从vs扩展插件安装 打开报表设计器,插入矩阵表格(只有这个才能支持表头单元格合并) 在列单元右建,插入行,根据实际需要添加…