fastDFS - 单机部署 + nginx

news/2024/9/20 3:13:14/文章来源:https://www.cnblogs.com/chanchifeng/p/18412115

准备

  1. 查看操作系统的版本信息
[root@lab10 ~]# cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)
  1. 查看操作系统的网卡地址
[root@lab10 ~]# ip address show ens32
2: ens32: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000link/ether 00:0c:29:ec:f2:1b brd ff:ff:ff:ff:ff:ffinet 10.1.1.10/24 brd 10.1.1.255 scope global ens32valid_lft forever preferred_lft foreverinet6 fe80::20c:29ff:feec:f21b/64 scope link valid_lft forever preferred_lft forever
  1. 查看系统本地域名解析信息
[root@lab10 ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
  1. 查看防火墙服务是否关闭
[root@lab10 ~]# getenforce
Permissive

创建数据存储目录

mkdir /home/dfs

切换到安装目录准备下载安装包

cd /usr/local/src

下载

  1. 访问https://nginx.org/en/download.html,下载 nginx

下载链接:https://nginx.org/download/nginx-1.26.2.tar.gz
文件全称:nginx-1.26.2.tar.gz
文件md5:1588676BE2A01A63D3A150FAE6C3F4A9

  1. 访问https://github.com/happyfish100/fastdfs/releases/tag/V6.12.1,下载 fastdfs

下载链接:https://github.com/happyfish100/fastdfs/archive/refs/tags/V6.12.1.tar.gz
文件全称:fastdfs-6.12.1.tar.gz
文件md5:9200914B56EA08D78A86D883DBADE23E

  1. 访问https://github.com/happyfish100/fastdfs-nginx-module/releases/tag/V1.24,下载 fastdfs-nginx-module

下载链接:https://github.com/happyfish100/fastdfs-nginx-module/archive/refs/tags/V1.24.tar.gz
文件全称:fastdfs-nginx-module-1.24.tar.gz
文件md5:7A58C2E5C7605284BD85F31A3F7CD622

  1. 访问https://github.com/happyfish100/libfastcommon/releases/tag/V1.0.74,下载 libfastcommon

下载链接:https://github.com/happyfish100/libfastcommon/archive/refs/tags/V1.0.74.tar.gz
文件全称:libfastcommon-1.0.74.tar.gz
文件md5:483F547E6DF264DC487CE559010FDC97

  1. 访问https://github.com/happyfish100/libserverframe/releases/tag/V1.2.4,下载 libserverframe

下载链接:https://github.com/happyfish100/libserverframe/archive/refs/tags/V1.2.4.tar.gz
文件全称:libserverframe-1.2.4.tar.gz
文件md5:524ACC91908D801DB3927FCA3BE4E494

上传

将上述 下载 的5个安装包上传至 /usr/local/src

安装编译环境

sudo yum install git gcc gcc-c++ make automake autoconf libtool pcre pcre-devel zlib zlib-devel openssl-devel wget vim -y

安装libfastcommon

# 进去目录
cd /usr/local/src/
# 解压
tar -zxvf libfastcommon-1.0.74.tar.gz
# 进去目录
cd /usr/local/src/libfastcommon-1.0.74
# 编译
./make.sh
# 安装
./make.sh install

安装libserverframe

# 进去目录
cd /usr/local/src/
# 解压
tar -zxvf libserverframe-1.2.4.tar.gz
# 进去目录
cd /usr/local/src/libserverframe-1.2.4
# 编译
./make.sh
# 安装
./make.sh install

安装FastDFS

# 进去目录
cd /usr/local/src/
# 解压
tar -zxvf fastdfs-6.12.1.tar.gz
# 进去目录
cd /usr/local/src/fastdfs-6.12.1
# 编译
./make.sh
# 安装
./make.sh install
# 供nginx访问使用
cp /usr/local/src/fastdfs-6.12.1/conf/http.conf /etc/fdfs/
cp /usr/local/src/fastdfs-6.12.1/conf/mime.types /etc/fdfs/

安装fastdfs-nginx-module

# 进去目录
cd /usr/local/src/
# 解压
tar -zxvf fastdfs-nginx-module-1.24.tar.gz
# 进去目录
cd /usr/local/src/fastdfs-nginx-module-1.24
# 供nginx访问使用
cp /usr/local/src/fastdfs-nginx-module-1.24/src/mod_fastdfs.conf /etc/fdfs

安装nginx

# 进去目录
cd /usr/local/src/
# 解压
tar -zxvf /usr/local/src/nginx-1.26.2.tar.gz
# 进去目录
cd /usr/local/src/nginx-1.26.2
# 添加fastdfs-nginx-module模块
# 添加with-http_stub_status_module模块
# 添加with-http_ssl_module模块
./configure --add-module=/usr/local/src/fastdfs-nginx-module-1.24/src --with-http_stub_status_module --with-http_ssl_module
# 编译
make
# 安装
make.sh install

单机部署 - tracker配置

vim /etc/fdfs/tracker.conf# 需要修改的内容如下# tracker服务器端口(默认22122,一般不修改) ---> 位置在20行
port = 22122
# 存储日志和数据的根目录 ---> 位置在45行
base_path = /home/dfs

单机部署 - storage配置

# 服务器ip为:10.1.1.10vim /etc/fdfs/storage.conf# 需要修改的内容如下# storage服务端口(默认23000,一般不修改) ---> 位置在33行
port = 23000
# 数据和日志文件存储根目录 ---> 位置在79行
base_path = /home/dfs
# 第一个存储目录 ---> 位置在159行
store_path0 = /home/dfs
# tracker服务器IP和端口 ---> 位置在179行、180行,注释180行
tracker_server = 10.1.1.10:22122
# http访问文件的端口(默认8888,看情况修改,和nginx中保持一致)  ---> 位置在3863行
http.server_port = 8888

单机部署 - client测试

# 服务器ip为:10.1.1.10vim /etc/fdfs/client.conf# 需要修改的内容如下# 数据和日志文件存储根目录 ---> 位置在11行
base_path = /home/dfs
# tracker服务器IP和端口 ---> 位置在26行、27行,注释27行
tracker_server = 10.1.1.10:22122# 为了确保配置读取成功,重启 tracker 和 storage 服务
fdfs_storaged /etc/fdfs/storage.conf restart
fdfs_trackerd /etc/fdfs/tracker.conf restart# 保存后测试
# 返回ID表示成功 如:group1/M00/00/00/CgEBCmbj07SAMa50ABL-dTo5Ptg.tar.gz
# 存储的路径:/home/dfs/data/00/00/CgEBCmbj07SAMa50ABL-dTo5Ptg.tar.gz
fdfs_upload_file /etc/fdfs/client.conf /usr/local/src/nginx-1.26.2.tar.gz

单机部署 - 配置nginx访问

# 服务器ip为:10.1.1.10vim /etc/fdfs/mod_fastdfs.conf# 需要修改的内容如下# tracker服务器IP和端口 ---> 位置在40行
tracker_server = 10.1.1.10:22122
#  ---> 位置在53行
url_have_group_name = true
#  ---> 位置在62行
store_path0 = /home/dfs# 配置nginx.config
vim /usr/local/nginx/conf/nginx.conf# 添加如下配置server {listen       8888;    ## 该端口为storage.conf中的http.server_port相同server_name  localhost;location ~/group[0-9]/ {ngx_fastdfs_module;}error_page   500 502 503 504  /50x.html;location = /50x.html {root   html;}}# 为了确保配置读取成功,重启 nginx 服务
[root@lab10 ~]# /usr/local/nginx/sbin/nginx -t
ngx_http_fastdfs_set pid=63349
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful# 启动 nginx 服务
/usr/local/nginx/sbin/nginx

文件校验

  • 服务器校验
[root@lab10 ~]# md5sum /usr/local/src/nginx-1.26.2.tar.gz 
1588676be2a01a63d3a150fae6c3f4a9  /usr/local/src/nginx-1.26.2.tar.gz
[root@lab10 ~]# md5sum /home/dfs/data/00/00/CgEBCmbj07SAMa50ABL-dTo5Ptg.tar.gz
1588676be2a01a63d3a150fae6c3f4a9  /home/dfs/data/00/00/CgEBCmbj07SAMa50ABL-dTo5Ptg.tar.gz
  • 本地校验

浏览器访问 http://10.1.1.10:8888/group1/M00/00/00/CgEBCmbj07SAMa50ABL-dTo5Ptg.tar.gz 下载上传成功的文件

结果:

  • 服务器使用 client 上传的与服务器 storage 服务存储的 md5 一致
  • 浏览器下载的文件与服务器 storage 服务存储的 md5 一致

参考链接:

  1. fastDFS 作者 wiki

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python 获取163 邮箱的邮件信息

此案例是是获取的一个亚马逊的验证码 import time from imaplib import IMAP4_SSL import imaplib,email,datetime from lxml import etree from dateutil.parser import parsedef str_to_unicode(s, encoding=None):return str(s, encoding) if encoding else str(s)def get_x…

支付宝携手HarmonyOS SDK打造高效便捷的扫码支付体验

背景 在日常的购物转账、生活缴费等在线支付中,用户在正式拉起支付界面前,均需要至少经历一次"识别"+两次"寻找",即识别归属应用、寻找应用、寻找扫码入口,才能完成扫码、付款,每一步都带来不同程度的用户流失。如何将步骤繁琐的扫码支付做到最简化,…

基于Java+Springboot+Vue开发的鲜花商城管理系统

项目简介该项目是基于Java+Springboot+Vue开发的鲜花商城管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Java编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Java的鲜花商城管理系统项目,大学生可以在实践中学…

基于Java+Springboot+Vue开发的体育用品商城管理系统

项目简介该项目是基于Java+Springboot+Vue开发的体育用品商城管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Java编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Java的体育用品商城管理系统项目,大学生可以在…

基于Java+Springboot+Vue开发的口腔牙科诊所预约管理系统

项目简介该项目是基于Java+Springboot+Vue开发的口腔牙科诊所预约管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Java编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Java的口腔预约管理系统项目,大学生可以在…

南沙C++信奥老师解一本通题: 1212:LETTERS

​题目描述】给出一个rowcol的大写字母矩阵,一开始的位置为左上角,你可以向上下左右四个方向移动,并且不能移向曾经经过的字母。问最多可以经过几个字母。【输入】第一行,输入字母矩阵行数R和列数S,1≤R,S≤20。 接着输出R行S列字母矩阵。【输出】最多能走过的不同字母的个…

ubuntu 采用.run文件安装的cuda,升级版本,安装cudnn

cuda下载 https://developer.nvidia.com/cuda-downloadscudnn下载 https://developer.nvidia.com/rdp/cudnn-archive关闭docker服务 sudo systemctl stop docker.socket sudo systemctl stop docker sudo systemctl stop docker.service卸载,采用nvidia-smi官方给的卸载方法:…

终于有人把Modbus讲明白了5i

合集 - 上位机开发(2)1.终于有人把Modbus讲明白了09-132.RS485与ModbusRTU09-10:westworld加速收起 大家好!我是付工。 2012年开始接触Modbus协议,至今已经有10多年了,从开始的懵懂,到后来的顿悟,再到现在的开悟,它始终岿然不动,变化的是我对它的认知和理解。 今天跟大家…

WPF 实现一个吃豆豆的Loading加载动画

运行的效果如下 先引入一下我们需要的库在nuget上面搜一下"expression.Drawing",安装一下这个包我们再创建一个Window,引入一下这个包的命名空间我们设置一下这个加载动画呈现的窗体的样式xmlns:ed="http://schemas.microsoft.com/expression/2010/drawing&quo…

[EGOI2024] Infinite Race题解

[EGOI2024] Infinite Race 妙妙题。 我们设 \(cnt[x]\) 表示当Anika和第 \(x\) 位选手相遇时Anika至少几次经过终点线。 设定初始状态 \(cnt[x]=-1\) 表示两种等价的情况:Anika还未和第 \(x\) 位选手相遇过 Anika被第 \(x\) 位选手超越了因此只剩下Anika超越了第 \(x\) 位选手…

仁科环境监控平台 温湿度采集 报错

應用程式: Monitor.exe Framework 版本: v4.0.30319 描述: 處理序已終止,因為有未處理的例外狀況。例外狀況資訊: System.AccessViolationException 於 Gecko.SpiderMonkey.JS_ExecuteScript_Win32(IntPtr, IntPtr ByRef, Gecko.MutableHandleValue ByRef) 於 Gecko.SpiderMon…

2024 ICPC复习 20-30页

https://www.luogu.com.cn/problem/CF1703G首先这个题一定要意识到 他是一个折半的操作 1e9最多被操作30次 所以我么完全dp第二维可以放这个次数 然后 dp数组就开出来了 时间复杂度也就明确了 对于某一个箱子 可以使用好钥匙打开也可以不用 用坏钥匙 好钥匙打开就是 dp i j=dp…