您当前的位置:首页 > 电脑百科 > 站长技术 > 服务器

Nginx 整合 FastDFS 实现文件服务器

时间:2020-10-28 12:54:53  来源:  作者:

  如果我们想通过 HTTP 访问 FastDFS 中保存的图片信息,需要借助其他工具实现,Nginx 就是一个不错的选择,它是一个高性能的 HTTP 和反向代理 Web 服务器。关于 Nginx 更多的内容请阅读《一篇文章搞定 Nginx 反向代理与负载均衡 》。

  

Nginx 整合 FastDFS 实现文件服务器

 

  

  那么问题来了:既然文件都上传至 Storage 服务器了,在 Storage 服务器中直接安装 Nginx 反向代理至文件资源路径,好像就能实现浏览器直接访问文件的效果。究竟是不是这样玩的呢?继续往下看。

  其实真实环境中并不是这样使用的,因为 FastDFS 是通过 Tracker 服务器将文件存储在 Storage 服务器中,而且同组存储服务器之间还需要进行文件复制,会有同步延迟的问题。

  假设 Tracker 服务器将文件上传到了 192.168.10.102,上传成功以后文件相关信息已经返回给客户端了。此时 FastDFS 的集群存储机制会将这个文件同步到同组中的其他机器上进行存储 192.168.10.103,在文件还没有复制完成的情况下,客户端如果用这个文件的相关信息在 192.168.10.103 上进行获取,就会出现文件无法访问的错误。

  解决办法就是使用 fastdfs-nginx-module,它可以重定向文件链接到源服务器进行获取,避免客户端由于复制延迟导致的文件无法访问的错误。

  

配置 fastdfs-nginx-module

  

下载资源

  

  Nginx 整合 FastDFS 时 Nginx 需要添加 fastdfs-nginx-module 模块。直接通过 Github:https://github.com/hAppyfish100/fastdfs-nginx-module 下载压缩包或者使用 git 命令下载,或者通过资源地址:https://sourceforge.net/projects/fastdfs/files/ 下载。

  下载以后,上传资源 fastdfs-nginx-module-master.zip 至服务器 /usr/local/src 目录后并解压。

 unzip fastdfs-nginx-module-master.zip

  

修改配置

  

  复制配置文件 mod_fastdfs.conf 到 /etc/fdfs 目录中。

 cp /usr/local/src/fastdfs-nginx-module-master/src/mod_fastdfs.conf /etc/fdfs/

  

  vim /etc/fdfs/mod_fastdfs.conf 编辑配置文件,主要关注以下部分。

 # tracker 服务器的 IP 和端口
 tracker_server = 192.168.10.101:22122
 # url 地址是否包含组名/卷名
 url_have_group_name = true
 # 数据组/卷对应的路径地址
 store_path0 = /fastdfs/storage/store

  

拷贝资源

  

  复制 fastdfs 安装包中的两个配置文件 http.conf 和 mime.types 到 /etc/fdfs 目录中。

 cp /usr/local/src/fastdfs-master/conf/http.conf /etc/fdfs/
 cp /usr/local/src/fastdfs-master/conf/mime.types /etc/fdfs/

  

安装 Nginx

  

下载资源

  

  下载 Nginx 并解压。

 # 下载 nginx 压缩包
 wget -P /usr/local/src http://nginx.org/download/nginx-1.18.0.tar.gz
 # 解压
 tar -zxvf /usr/local/src/nginx-1.18.0.tar.gz -C /usr/local/src

  

安装依赖

  

  Nginx 是基于 C 语言开发的,HTTP 模块使用了 pcre 来解析正则表达式,且可以使用 zlib 对 HTTP 包的内容进行 gzip 压缩,Nginx 不仅支持 HTTP 协议,还支持 HTTPS,HTTPS 需要 openssl 提供支持,所以安装 Nginx 之前必须先安装它所依赖的环境。

 yum install -y gcc gcc-c++ pcre pcre-devel zlib zlib-devel openssl-devel

  

安装 Nginx

  

  编译并安装。

 # 切换至 nginx 的解压目录
 cd /usr/local/src/nginx-1.18.0
 # 创建 nginx 的安装目录
 mkdir -p /usr/local/nginx
 # 添加 fastdfs-nginx-module 模块,指定 nginx 的安装路径
 ./configure --add-module=/usr/local/src/fastdfs-nginx-module-master/src --prefix=/usr/local/nginx/
 # 编译并安装
 make && make install

  

配置 Nignx

  

  vim /usr/local/nginx/conf/nginx.conf 编辑配置文件,在 80 端口下添加以下内容。关于 Nginx 启动用户的问题请根据自身实际环境进行配置。

 location ~/group[0-9]/ {
     ngx_fastdfs_module;
 }
Nginx 整合 FastDFS 实现文件服务器

 

  

测试

  

  启动 Nginx,命令为:/usr/local/nginx/sbin/nginx

  此时客户端上传图片以后得到文件名为:group1/M00/00/00/wKgKZl9tkTCAJAanAADhaCZ_RF0495.jpg

  浏览器访问:http://192.168.10.102/group1/M00/00/00/wKgKZl9tkTCAJAanAADhaCZ_RF0495.jpg 效果如下:

Nginx 整合 FastDFS 实现文件服务器

 

  至此 Nginx 整合 FastDFS 实现文件服务器就到这里,其实目前的环境只是一个单节点的 FastDFS,如果要实现高可用,Tracker 和 Storage 都需要搭建多个节点形成集群环境,后续文章中会详细的教大家搭建 FastDFS 的集群环境。下文我们先解决 JAVA 客户端如何操作 FastDFS 实现文件上传下载替换删除。



Tags:FastDFS   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
说起分布式文件管理系统,大家可能很容易想到 HDFS、GFS 等系统,前者是 Hadoop 的一部分,后者则是 Google 提供的分布式文件管理系统。除了这些之外,国内淘宝和腾讯也有自己的分...【详细内容】
2021-03-09  Tags: FastDFS  点击:(202)  评论:(0)  加入收藏
  如果我们想通过 HTTP 访问 FastDFS 中保存的图片信息,需要借助其他工具实现,Nginx 就是一个不错的选择,它是一个高性能的 HTTP 和反向代理 Web 服务器。关于 Nginx 更多的...【详细内容】
2020-10-28  Tags: FastDFS  点击:(101)  评论:(0)  加入收藏
学习目标1)了解分布式文件系统的概念及应用场景2)理解fastDFS的工作原理3)掌握fastDFS存取文件方法4)基于SpringBoot+fastDSf+vue.js实现图片服务1 什么是分布式文件系统1.1 技...【详细内容】
2020-04-27  Tags: FastDFS  点击:(70)  评论:(0)  加入收藏
Github仓库Github介绍: https://github.com/happyfish100/fastdfsGithub文档: https://github.com/happyfish100/fastdfs/wikiFastDFS介绍FastDFS 是用 c 语言编写的一款开源...【详细内容】
2019-10-14  Tags: FastDFS  点击:(137)  评论:(0)  加入收藏
▌简易百科推荐
阿里云镜像源地址及安装网站地址https://developer.aliyun.com/mirror/centos?spm=a2c6h.13651102.0.0.3e221b111kK44P更新源之前把之前的国外的镜像先备份一下 切换到yumcd...【详细内容】
2021-12-27  干程序那些事    Tags:CentOS7镜像   点击:(1)  评论:(0)  加入收藏
前言在实现TCP长连接功能中,客户端断线重连是一个很常见的问题,当我们使用netty实现断线重连时,是否考虑过如下几个问题: 如何监听到客户端和服务端连接断开 ? 如何实现断线后重...【详细内容】
2021-12-24  程序猿阿嘴  CSDN  Tags:Netty   点击:(12)  评论:(0)  加入收藏
一. 配置yum源在目录 /etc/yum.repos.d/ 下新建文件 google-chrome.repovim /etc/yum.repos.d/google-chrome.repo按i进入编辑模式写入如下内容:[google-chrome]name=googl...【详细内容】
2021-12-23  有云转晴    Tags:chrome   点击:(7)  评论:(0)  加入收藏
一. HTTP gzip压缩,概述 request header中声明Accept-Encoding : gzip,告知服务器客户端接受gzip的数据 response body,同时加入以下header:Content-Encoding: gzip:表明bo...【详细内容】
2021-12-22  java乐园    Tags:gzip压缩   点击:(8)  评论:(0)  加入收藏
yum -y install gcc automake autoconf libtool makeadduser testpasswd testmkdir /tmp/exploitln -s /usr/bin/ping /tmp/exploit/targetexec 3< /tmp/exploit/targetls -...【详细内容】
2021-12-22  SofM    Tags:Centos7   点击:(7)  评论:(0)  加入收藏
Windows操作系统和Linux操作系统有何区别?Windows操作系统:需支付版权费用,(华为云已购买正版版权,在华为云购买云服务器的用户安装系统时无需额外付费),界面化的操作系统对用户使...【详细内容】
2021-12-21  卷毛琴姨    Tags:云服务器   点击:(6)  评论:(0)  加入收藏
参考资料:Hive3.1.2安装指南_厦大数据库实验室博客Hive学习(一) 安装 环境:CentOS 7 + Hadoop3.2 + Hive3.1 - 一个人、一座城 - 博客园1.安装hive1.1下载地址hive镜像路径 ht...【详细内容】
2021-12-20  zebra-08    Tags:Hive   点击:(9)  评论:(0)  加入收藏
以下是服务器安全加固的步骤,本文以腾讯云的CentOS7.7版本为例来介绍,如果你使用的是秘钥登录服务器1-5步骤可以跳过。1、设置复杂密码服务器设置大写、小写、特殊字符、数字...【详细内容】
2021-12-20  网安人    Tags:服务器   点击:(7)  评论:(0)  加入收藏
项目中,遇到了一个问题,就是PDF等文档不能够在线预览,预览时会报错。错误描述浏览器的console中,显示如下错误:nginx代理服务报Mixed Content: The page at ******** was loaded...【详细内容】
2021-12-17  mdong    Tags:Nginx   点击:(7)  评论:(0)  加入收藏
转自: https://kermsite.com/p/wt-ssh/由于格式问题,部分链接、表格可能会失效,若失效请访问原文密码登录 以及 通过密钥实现免密码登录Dec 15, 2021阅读时长: 6 分钟简介Windo...【详细内容】
2021-12-17  LaLiLi    Tags:SSH连接   点击:(16)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条