本网站(662p.com)打包出售,且带程序代码数据,662p.com域名,程序内核采用TP框架开发,需要联系扣扣:2360248666 /wx:lianweikj
精品域名一口价出售:1y1m.com(350元) ,6b7b.com(400元) , 5k5j.com(380元) , yayj.com(1800元), jiongzhun.com(1000元) , niuzen.com(2800元) , zennei.com(5000元)
需要联系扣扣:2360248666 /wx:lianweikj
Nginx 整合 FastDFS 实现文件服务器
huasy · 486浏览 · 发布于2020-10-09 +关注

如果我们想通过 HTTP 访问 FastDFS 中保存的图片信息,需要借助其他工具实现,Nginx 就是一个不错的选择,它是一个高性能的 HTTP 和反向代理 Web 服务器。

  

  

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

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

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

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

  


1|0配置 fastdfs-nginx-module


  


1|1下载资源


  

  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


  


1|2修改配置


  

  复制配置文件 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


  


1|3拷贝资源


  

  复制 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/


  


2|0安装 Nginx


  


2|1下载资源


  

  下载 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


  


2|2安装依赖


  

  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


  


2|3安装 Nginx


  

  编译并安装。

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

3|0配置 Nignx


  

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

location\~/group[0-9]/ {  
  ngx_fastdfs_module;}


image.png

  


4|0测试


  

  启动 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效果如下:

image.png

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


相关推荐

使用SELECT语句检索数据

奔跑的男人 · 806浏览 · 2019-06-03 09:33:43
部署MySQL延迟从库的几个好处

吴振华 · 666浏览 · 2019-05-14 21:57:51
MongoDB凭什么跻身数据库排行前五?

iamitnan · 723浏览 · 2019-06-18 10:04:56
Oracle开启和关闭的几种模式

qq2360248666 · 754浏览 · 2019-06-04 10:18:47
加载中

0评论

评论
nothing is impossible
分类专栏
小鸟云服务器
扫码进入手机网页