fastdfs-nginx-module的安装与部署

简介: fastdfs-nginx-module的安装与部署

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”获取:


相关文章
|
3月前
|
弹性计算 运维 监控
快速部署 Nginx 社区版
Nginx是一个高性能的HTTP和反向代理服务器。Nginx在计算巢上提供了社区版服务,您无需自行配置云主机,即可在计算巢上快速部署Nginx服务、实现运维监控,从而方便地基于Nginx搭建您自己的应用。本文介绍使用如何通过计算巢快速部署Nginx社区版。
快速部署 Nginx 社区版
|
1月前
|
应用服务中间件 网络安全 nginx
轻松上手Nginx Proxy Manager:安装、配置与实战
Nginx Proxy Manager (NPM) 是一款基于 Nginx 的反向代理管理工具,提供直观的 Web 界面,方便用户配置和管理反向代理、SSL 证书等。本文档介绍了 NPM 的安装步骤,包括 Docker 和 Docker Compose 的安装、Docker Compose 文件的创建与配置、启动服务、访问 Web 管理界面、基本使用方法以及如何申请和配置 SSL 证书,帮助用户快速上手 NPM。
248 1
|
2月前
|
负载均衡 应用服务中间件 Linux
nginx学习,看这一篇就够了:下载、安装。使用:正向代理、反向代理、负载均衡。常用命令和配置文件,很全
这篇博客文章详细介绍了Nginx的下载、安装、配置以及使用,包括正向代理、反向代理、负载均衡、动静分离等高级功能,并通过具体实例讲解了如何进行配置。
186 4
nginx学习,看这一篇就够了:下载、安装。使用:正向代理、反向代理、负载均衡。常用命令和配置文件,很全
|
2月前
|
tengine 关系型数据库 MySQL
Tengine、Nginx安装MySQL数据库命令教程
本指南详细介绍了在Linux系统上安装与配置MySQL数据库的步骤。首先通过下载并安装MySQL社区版本,接着启动MySQL服务,使用`systemctl start mysqld.service`命令。若启动失败,可尝试使用`sudo /etc/init.d/mysqld start`。利用`systemctl status mysqld.service`检查MySQL的服务状态,确保其处于运行中。通过日志文件获取初始密码,使用该密码登录数据库,并按要求更改初始密码以增强安全性。随后创建一个名为`tengine`的数据库,最后验证数据库创建是否成功以及完成整个设置流程。
|
2月前
|
tengine 应用服务中间件 Linux
Tengine、Nginx安装PHP命令教程
要在阿里云Linux上安装PHP,请先更新YUM源并启用PHP 8.0仓库,然后安装PHP及相关扩展。通过`php -v`命令验证安装成功后,需修改Nginx配置文件以支持PHP,并重启服务。最后,创建`phpinfo.php`文件测试安装是否成功。对于CentOS系统,还需安装EPEL源和Remi仓库,其余步骤类似。完成上述操作后,可通过浏览器访问`http://IP地址/phpinfo.php`测试安装结果。
|
2月前
|
应用服务中间件 Linux nginx
Mac os 安装 nginx 教程(success)
这篇文章是关于如何在Mac OS系统上使用Homebrew安装nginx及其依赖,并解决安装过程中可能出现的权限问题。
237 0
Mac os 安装 nginx 教程(success)
|
2月前
|
Ubuntu 搜索推荐 应用服务中间件
Nginx安装与使用
Nginx安装与使用
|
2月前
|
负载均衡 算法 应用服务中间件
Nginx安装及配置详解
Nginx安装及配置详解
|
2月前
|
应用服务中间件 程序员 开发工具
mac下安装nginx
mac下安装nginx
|
2月前
|
前端开发 JavaScript 应用服务中间件
使用nginx部署网站
使用nginx部署网站