FastDFS与Nginx集成

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_39453325/article/details/82932382

最近考虑在项目中使用文件服务器来存储图片文件,FastDFS 是一个开源的轻量级的分布式文件系统,由 tracker server(跟踪服务器) 、storage server(存储服务器) 、client(客户端) 三部分组成,主要解决了海量数据存储问题,特别适合中小文件( 4KB<file_size<500MB)为载体的服务。FastDFS 的集群搭建比较复杂,对于想要学习 FastDFS 的初学者来说,搭建一个单机版的作为入门更容易一些,接下来我们进行集成。

一 搭建虚拟环境

FastDFS 需要在 Linux 系统上进行安装,在 Windows 系统下我们可以借助虚拟环境来安装 FastDFS ,需要使用 Vmware 12 创建虚拟机。关于如何安装最小化虚拟机,大家可以参考 https://blog.csdn.net/weixin_39453325/article/details/82936158 这篇博客。

二 配置静态IP且能上网

大家可以参考 https://blog.csdn.net/weixin_39453325/article/details/82938275 这篇博客进行学习,实现静态IP的配置。

三 上传安装所需安转包到虚拟机中

大家可以在 https://download.csdn.net/download/weixin_39453325/10702688 下载 FastDFS 和 Nginx 集成所需安装包,并利用 SecureCRT 的 SFTP 命令传输文件到我们安装的虚拟机中去。如何上传文件到虚拟机中去大家可以参考 https://blog.csdn.net/weixin_39453325/article/details/82940750 这篇博客。安装包上传完毕后,我们把我们所需要的所有安装包移动到 "/usr/local/software" 目录下。

四 安装libfastcommon

1. 安装zip和unzip命令,用于解压 .zip 结尾的文件。

yum -y install unzip zip

2. 解压libfastcommon-master.zip包到 "/usr/local/fast/" 下,如图所示,并进入到 libfastcommon-master 目录下。

[root@cwxiong software]# unzip libfastcommon-master.zip -d /usr/local/fast/

 3. 安装gcc和perl

[root@cwxiong libfastcommon-master]# yum -y install gcc gcc-c++ make automake autoconf libtool perl

4.  编译安装,安装成功后有如下图所示的界面,图中红色标注的内容是 libfastcommon.so 默认的安装位置。

[root@cwxiong libfastcommon-master]# ./make.sh && ./make.sh install

 5. 创建软链接,FastDFS 主程序设置的目录为 /usr/local/lib/ ,所以我们需要创建 /usr/lib64/ 下的一些核心执行程序的软链接文件(相当于 Windows 中的快捷方式),如下图所示。

可以在 /usr/local/lib 下查看到该链接如下图所示。

 至此 libfastcommon 安装完毕,接下来安装 FastDFS 。

五 安装FastDFS

1. 解压 fastdfs-5.05.tar.gz 包到 "/usr/local/fast" 下,如下图所示,并进入 fastdfs-5.05 目录下。

[root@cwxiong software]# tar -zxvf fastdfs-5.05.tar.gz -C /usr/local/fast/

2. 编译安装后有如下所示界面。

[root@cwxiong fastdfs-5.05]# ./make.sh && ./make.sh install

3. 安装完成后,服务脚本位置如下

配置文件位置如下

FastDFS一系列执行脚本如下,其中有上传文件脚本、下载文件脚本等

4. 因为 FastDFS 服务脚本设置的 bin 目录为 /usr/local/bin 下,但我们实际安装在 /usr/bin 下,所以我们要修改 FastDFS 配置文件中的路径,需要修改以下两个配置文件。

4.1 使用以下命令进入编辑模式,然后直接输入":",光标定位到最后一行,在":"后输入"%s+/usr/local/bin+/usr/bin",如下图所示,输入完之后回车,会提示我们修改了 7 处。

[root@cwxiong bin]# vi /etc/init.d/fdfs_trackerd

4.2 使用以下命令进入编辑模式,然后直接输入":",光标定位到最后一行,在":"后输入"%s+/usr/local/bin+/usr/bin",如下图所示,输入完之后回车,同样会提示我们修改了 7 处。

[root@cwxiong bin]# vi /etc/init.d/fdfs_storaged

5. 配置 tracker (跟踪器)。

5.1 进入/etc/fdfs目录下,复制一份 tracker.con.sample 并命名为 tracker.conf ,如下图所示(与此同时我们也复制了一份storage.conf.sample 与 client.conf.sample 后面会编辑到)。

5.2 在 /opt/ 下创建一个文件夹 tracker 。

[root@cwxiong fdfs]# mkdir /opt/tracker

5.3 编辑 tracker.conf ,修改 base_path 的值为 /opt/tracker (设置 tracker 的数据文件目录和日志目录),如下图所示。

[root@cwxiong fdfs]# vi tracker.conf

5.4 配置防火墙,开放 tracker 使用的 22122 端口,如下图所示。

[root@cwxiong fdfs]# vi /etc/sysconfig/iptables

 5.5 重启防火墙。

5.6 未启动 tracker 之前,/opt/tracker 目录下没有任何文件,如下图所示。

启动 tracker 后,可以看到这个目录下多了一个 data 和 logs 目录,如下图所示。

5.7 设置开机自启动,如下图所示。

[root@cwxiong tracker]# vi /etc/rc.d/rc.local

6 配置 storage (存储器)。

6.1 进入到 /etc/fdfs 目录下,复制一份 storage.conf.simple 并命名为 storage.conf ,我们在步骤 5.1 已经实现。 

6.2 在 /opt/ 下创建一个文件夹 storage。

[root@cwxiong fdfs]# mkdir /opt/storage

6.3 编辑 storage.conf 配置文件,修改以下4个地方,第一张图是设置 storage 数据文件目录和日志目录,第二张图是设置实际文件存储路径,第三张图的 tracker_server 的IP为我们自己配置的我的目标机IP(大家需根据自己的虚拟机 IP 自行设置),第四张图是设置 http 端口号。

[root@cwxiong fdfs]# vi storage.conf

6.4 配置防火墙,允许访问 storage 默认的 23000 端口,如下图所示。

[root@cwxiong fdfs]# vi /etc/sysconfig/iptables

6.5 重启防火墙。

6.6 未启动 tracker 之前,/opt/storage 目录下没有任何文件,如下图所示。

启动 storage 后,可以看到这个目录下多了一个 data 和 logs 目录,如下图所示。

6.7 查看 FastDFS tracker 和 storage 是否启动成功,启动成功的信息如下所示。

 6.8 查看 storage 服务器是否已经登记到 tracker 服务器( stracker 与 storage 是否整合成功),如下图所示看到 192.168.20.88 ACTIVE 字样即可说明 storage 服务器已经成功登记到 tracker 服务器上。

6.9 查看 /opt/storage/data/ 目录,可看到一级目录是从 00 到 FF 的,每个一级目录下都有一层二级目录,从 00 到 FF ,两级共  256*256 个目录。

6.10 设置开机自启动,如下图所示。

[root@cwxiong data]# vi /etc/rc.local

7 配置 client (客户端)。

7.1 进入到 /etc/fdfs 目录下,复制一份 client.conf.simple 并命名为 client.conf ,我们在步骤 5.1 已经实现。

7.2 编辑 client.conf ,修改以下两项内容,第一张图是 tracker 服务器文件路径,第二张图是 tracker 服务器 IP 地址和端口号。

[root@cwxiong fdfs]# vi client.conf

8 上传图片测试。

8.1 利用 SecureCRT 的 SFTP 命令上传一张图片到 /opt 目录下,上传成功后,如下图所示。

8.2 找到命令脚本位置,使用命令进行文件上传。

 8.3 使用上传命令上传文件,如下图所示,返回了一个保存图片的位置,则说明已经上传成功。

我们也可以在之前配置的 storage 服务器的实际文件存储路径中根据返回的路径找到实际文件,如下图所示。

六 FastDFS与Nginx整合

1 先安装 Nginx ,大家可以参考 https://blog.csdn.net/weixin_39453325/article/details/82942479 这篇博客进行安装。

2 解压 fastdfs-nginx-module_v1.16.tar.gz (FastDFS 与 Nginx 结合的模块安装包)到 /usr/local/fast 目录下。

[root@cwxiong software]# tar -zxvf fastdfs-nginx-module_v1.16.tar.gz -C /usr/local/fast/

 3 进入 fastdfs-nginx-module/src 目录下,可看到 config 文件,修改 config 文件,把文件第四行配置中的 /usr/local/include 都改为 /usr/include ,一共需改两处,如下图所示。

[root@cwxiong src]# vi config

 4 FastDFS 与 Nginx 相结合。

4.1 删除安装 Nginx 时生成的 nginx 目录。

由于我们在 FastDFS 与 Nginx 整合的第一步已经安装好了 Nginx ,并在 /usr/local 目录下生成一个 nginx 目录了,如下图所示。

为了整合 FastDFS 与 Nginx ,我们先把这个 nginx 目录删除如下图所示,可以看到 nginx 目录已经消失了。 

4.2 进入 nginx-1.6.2 目录下执行配置和编译安装。

输入以下命令进行配置,配置成功后有如下界面。

[root@cwxiong local]# cd nginx-1.6.2/
[root@cwxiong local]# ./configure --add-module=/usr/local/fast/fastdfs-nginx-module/src/

 输入以下命令进行安装,如下图所示是安装成功后的界面。

make && make install

5 复制 fastdfs-nginx-module 中的配置文件到 /etc/fdfs 目录下,并修改该配置文件。

复制 mod_fastdfs.conf 文件到 /etc/fdfs 目录下,如下图所示。

输入以下命令修改配置文件。第一项是连接超时时长,第二项是 tracker 服务器的 IP 地址及端口号,第三项是允许外界通过 http 方式访问资源,第四项是存储路径。

[root@cwxiong fdfs]# vi mod_fastdfs.conf

6 复制 fastdfs 里的两个文件到 /etc/fdfs 目录下。

7 创建软链接,在 /opt/storage 文件存储目录下创建软链接,将其链接到实际存放数据的目录,如下图所示。

 可在 /opt/storage/data/M00 下查看该链接,如下图所示。

8 进入到整合生成的 /urs/local/nginx 目录下,进入 conf 目录,修改 nginx.conf 配置文件,如下图所示。

​[root@cwxiong conf]# vi nginx.conf

 9 启动 nginx ,如下图所示为启动成功的界面。 

10 配置防火墙,开放 8888 端口,允许外界通过 8888 端口来访问图片。

[root@cwxiong conf]# vi /etc/sysconfig/iptables

 11 重新启动防火墙。

12 设置 nginx 开机自启动,这样在重新启动设备后,tracker、storage、nginx 都自动启动了,可直接使用服务。

[root@cwxiong conf]# vi /etc/rc.d/rc.local

 13 在浏览器中通过 http 访问我们刚才上传的图片了(在安装 FastDFS 的第 8.3 步返回的保存图片的位置),如下图所示。

一切正常~,关于 FastDFS 与 Nginx 的整合部署测试已经成功完成。

猜你喜欢

转载自blog.csdn.net/weixin_39453325/article/details/82932382