FastDFS的安装(2)——FastDFS 和nginx整合

本文介绍如何通过集成Nginx提升FastDFS文件下载性能,包括安装配置步骤及使用Nginx模块解决文件合并与同步问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

环境准备

FastDFS的安装(1)

1、背景

在大多数业务场景中,往往需要为FastDFS存储的文件提供http下载服务,而尽管FastDFS在其storage及tracker都内置了http服务, 但性能表现却不尽如人意。
作者余庆在后来的版本中增加了基于当前主流web服务器的扩展模块(包括nginx/apache),其用意在于利用web服务器直接对本机storage数据文件提供http服务,以提高文件下载的性能。

2、架构

使用FastDFS整合Nginx的参考架构如下所示
架构
说明: 在每一台storage服务器主机上部署Nginx及FastDFS扩展模块,由Nginx模块对storage存储的文件提供http下载服务, 仅当当前storage节点找不到文件时会向源storage主机发起redirect或proxy动作。

注:图中的tracker可能为多个tracker组成的集群;且当前FastDFS的Nginx扩展模块支持单机多个group的情况。

更多内容

FastDFS-Nginx扩展模块源码分析

3、为什么要使用Nginx的扩展模块来访问存储的文件

(1)如果进行文件合并,那么不使用FastDFS的nginx扩展模块,是无法访问到具体的文件的,因为文件合并之后,多个小文件都是存储在一个trunk文件中的,在存储目录下,是看不到具体的小文件的。

(2)如果文件未同步成功,那么不使用FastDFS的nginx扩展模块,无法正常访问到指定的文件的,而使用了FastDFS的nginx扩展模块之后,如果要访问的文件未同步成功,那么会解析出来该文件的源存储服务器ip ,然后将该访问请求转发或者重定向到源存储服务器中进行访问。
fastDFS分布式文件系统

4、安装与配置FastDFS的nginx模块

在tracker上安装nginx

在每个tracker上安装nginx,的主要目的是做负载均衡及实现高可用。如果只有一台tracker可以不配置nginx。

一个tracker对应多个storage,通过nginx对storage负载均衡;

在storage 上安装FastDFS的nginx模块

在storage 上安装FastDFS的nginx模块,即在storage服务器(192.168.1.110与192.168.1.111)上安装FastDFS的nginx模块。
(1)到GitHub下载fastdfs-nginx-module的压缩包

https://github.com/happyfish100/fastdfs-nginx-module/releases

(2)上传 fastdfs-nginx-module压缩包 到Centos服务器上

(3)解压 fastdfs-nginx-module压缩包到 /app目录下

tar -zxvf fastdfs-nginx-module-1.20.tar.gz -C /app

(4)修改配置文件(特别关键的一步)

cd /app/fastdfs-nginx-module-1.20/src
vi config 

注意修改了6行和15行
在这里插入图片描述
对比做修改

    ngx_module_incs="/usr/include/fastdfs /usr/include/fastcommon/"
    CORE_INCS="$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon/"

(5)拷贝mod_fastdfs.conf配置文件到 /etc/fdfs 下

cd /app/fastdfs-nginx-module-1.20/src
cp mod_fastdfs.conf /etc/fdfs/

(6)修改/etc/fdfs/路径下的mod_fastdfs.conf文件

cd /etc/fdfs/
vi mod_fastdfs.conf 

配置文件
(7)拷贝/usr/lib64下的libfdfsclient.so.so到/usr/lib下(新版本不需要)

(8)创建nginx/client目录

mkdir -p /var/temp/nginx/client

5、安装Nginx

(1)从官网下载nginx的压缩包

http://nginx.org/en/download.html
nginx下载

(2)上传 nginx压缩包到Centos服务器上;

(3)解压 nginx压缩包到 /usr/local目录下;

tar zxvf nginx-1.16.0.tar.gz -C /app

(4)安装nginx的依赖库

yum install pcre
yum install pcre-devel
yum install zlib
yum install zlib-devel
yum install openssl
yum install openssl-devel

(5)进入nginx解压的目录下

cd /app/nginx-1.16.0/

(6)执行configure配置

./configure \
--prefix=/app/nginx \
--pid-path=/var/run/nginx/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--with-http_gzip_static_module \
--http-client-body-temp-path=/var/temp/nginx/client \
--http-proxy-temp-path=/var/temp/nginx/proxy \
--http-fastcgi-temp-path=/var/temp/nginx/fastcgi \
--http-uwsgi-temp-path=/var/temp/nginx/uwsgi \
--http-scgi-temp-path=/var/temp/nginx/scgi \
--add-module=/app/fastdfs-nginx-module-1.20/src

注意:prefix=/app/nginx红的/app/nginx指的是要安装的nginx的路径。
add-module=/app/fastdfs-nginx-module-1.20/src中的路径指的是fastdfs-nginx-module模块的解压缩路径。

(7)创建临时目录
上面执行的configure命令,设置了一些配置参数,其中的一些参数指定的目录一定要存在。

mkdir /var/temp/nginx/ -p

(8)编译并安装

make && make install

可以通过./nginx -V查看nginx都安装了哪些模块。
在这里插入图片描述
(9)修改nginx配置文件

cd /app/nginx/conf/
vi nginx.conf
        location  /group1/M00/{
            ngx_fastdfs_module;
        }

nginx配置
注意:location /group1/M00/:group1为nginx 服务FastDFS的分组名称,M00是FastDFS自动生成编号,对应store_path0=/fastdfs/storage,如果FastDFS定义store_path1,这里就是M01。
(10)nginx的启动

cd /app/nginx/sbin/
./nginx 

在这里插入图片描述
(11) 设置fastdfs 和 nginx 服务的开机自启动

6、在浏览器中访问上传到fastDFS的图片

http://192.168.1.110/group1/M00/00/00/wKgBblzGBcSAVaeZAAfp4VPue6c997_b
访问图片

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值