分享

fastdfs-nginx-module的安装与部署

 流楚丶格念 2022-01-14

FastDFS的Nginx模块

1 简介

一个好的分布式文件系统最好提供Nginx的模块,因为对于互联网应用来说,像文件这种
静态资源,一般是通过HTTP的下载,此时通过容易扩展的Nginx来访问FastDFS,能够让
文件的上传和下载变得特别简单。

Nginx安装FastDFS模块,主要是安装在FastDFS的存储服务器(storage)上,而不是tracker和client上。

目的实际是为了,当输入地址(其中192.168.31.109 是一个storage服务器):http://192.168.201.109/group1/M00/00/00/wKgCbFem0l2ALJKKKJJfRAMkc536.png
能够通过Nginx的Web服务功能,直接返回图片。

2 Nginx上部署FastDFS

2.1 模块包的安装

注意:全部安装条件在确保之前的FastDFS 的tracker、storage和client可以正常使用。
之前FastDFS安装步骤:https://blog.csdn.net/weixin_45525272/article/details/107748384

1)解压Nginx的FastDFS模块包:tar -xzvf fastdfs-nginx-module_v1.16.tar.gz

cd fastdfs-nginx-module/会发现里面有个INSTALL 和 src目录,这个不需要make而是需要重新编译一下storage的Nginx模块。

2)安装和编译Nginx 并添加FastDFS模块

cd nginx-1.10.1/
./configure --add-module=/usr/local/src/fastdfs-nginx-module/src

其中/usr/local/src/fastdfs-nginx-module/src 是刚才解压的fastdfs模块的绝对路径,就是在编译Nginx时候,连同这个模块一起编译:

make
sudo make install

报错处理

如果中途出现编译错误,找不到fastdfs_define.h等头文件:

原因是Nginx是会想/usr/local/include/fastdfs/去找, 而不是去/usr/include/fastdfs/去找,将/usr/include/fastdfs/ 和 /usr/include/fastcommon/ 两个文件夹拷贝到/usr/local/include/下即可:

sudo cp /usr/include/fastdfs/ /usr/local/include/ -R
sudo cp /usr/include/fastcommon/ /usr/local/include/ -R

2.2 fastdfs-nginx-module 的配置

2.2.1 fastdfs-nginx-module配置文件

将fastdfs-nginx-module/src/mod_fastdfs.conf 拷贝到/etc/fdfs/下:

sudo cp fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs/

修改mod_fastdfs.conf:

base_path = / 你自己存放fdstdfs的路径/ fastdfs / storage #保存日志目录, 跟storage.conf一致即可
tracker_server = 你自己的IP:22122 #tracker服务器的IP地址以及端口号, 确保跟storage.conf一致即可

storage_server_port = 23000 #storage服务器的端口号,确保跟storage.conf一致即可

group_name = group1 #当前服务器的group名,确保跟storage.conf一致即可
url_have_group_name = true #文件url中是否有group名,这个最好设置为true,这样方便nginx服务器解析

store_path_count = 1 #存储路径个数,需要和store_path个数匹配
store_path0 = / usr / fastdfs / fastdfs0 #存储路径, 跟storage.conf一致即可

group_count = 1 #设置组的个数
[group1]
group_name = group1
storage_server_port = 23000
store_path_count = 1
store_path0 = / usr / fastdfs / fastdfs0

##如果group_count = 2 ,那就再配置一个(这里不需要)

2.2.2 建立软连接

sudo ln -s /usr/fastdfs/fastdfs0/data /usr/fastdfs/fastdfs0/data/M00

2.2.3 配置nginx

location /group1/M00 {
root /usr/fastdfs/fastdfs0/data;
ngx_fastdfs_module;
}

报错处理

启动Nginx,观察/usr/local/nginx/logs/errors.log 是否有ERROR存在,如果有类似如下错误:

ERROR - file: ini_file_reader.c, line : 315, include file "http.conf" not exists, line :
"#include http.conf"
ERROR - file : / root / Open_Package / fastdfs - nginx - module / src / common.c, line : 155, load co
nf file "/etc/fdfs/mod_fastdfs.conf" fail, ret code : 2
2016 / 08 / 06 23 : 51 : 13[alert] 12734#0: worker process 12735 exited with fatal code 2 and
cannot be respawned

类似这种错误会导致nginx-worker启动失败,致使nginx无法提供web服务,表示/etc/fdfs/下缺少http.conf 和mime.types文件

从fastdfs-5.05/conf/http.conf 拷贝到/etc/fdfs/下,从nginx-1.10.1/conf/mime.types 拷贝
到/etc/fdfs/下,即可解决。

2.3 测试环境

重新启动storage和nginx:

sudo /usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart
sudo /usr/local/nginx/sbin/nginx -s reload

假如storage服务器已经有文件资源(其中,192.168.31.109是storage服务器的ip地址):

打开浏览器输入:http://192.168.31.109/group1/M00/00/00/wKgfbVhnpGSANaaNAAFbrNWRkBM855.jpg

如果,得到图片显示,则表示storage已经成功配置Nginx服务。

storage服务器的ip地址可通过“fdfs_file_info”获取:

在这里插入图片描述

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多