最近考虑在项目中使用文件服务器来存储图片文件,FastDFS 是一个开源的轻量级的分布式文件系统,由 tracker server(跟踪服务器) 、storage server(存储服务器) 、client(客户端) 三部分组成,主要解决了海量数据存储问题,特别适合中小文件( 4KB FastDFS 需要在 Linux 系统上进行安装,在 Windows 系统下我们可以借助虚拟环境来安装 FastDFS ,需要使用 Vmware 12 创建虚拟机。关于如何安装最小化虚拟机,大家可以参考 https://blog.csdn.net/weixin_39453325/article/details/82936158 这篇博客。 大家可以参考 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" 目录下。 1. 安装zip和unzip命令,用于解压 .zip 结尾的文件。 2. 解压libfastcommon-master.zip包到 "/usr/local/fast/" 下,如图所示,并进入到 libfastcommon-master 目录下。 3. 安装gcc和perl 4. 编译安装,安装成功后有如下图所示的界面,图中红色标注的内容是 libfastcommon.so 默认的安装位置。 5. 创建软链接,FastDFS 主程序设置的目录为 /usr/local/lib/ ,所以我们需要创建 /usr/lib64/ 下的一些核心执行程序的软链接文件(相当于 Windows 中的快捷方式),如下图所示。 可以在 /usr/local/lib 下查看到该链接如下图所示。 至此 libfastcommon 安装完毕,接下来安装 FastDFS 。 1. 解压 fastdfs-5.05.tar.gz 包到 "/usr/local/fast" 下,如下图所示,并进入 fastdfs-5.05 目录下。 2. 编译安装后有如下所示界面。 3. 安装完成后,服务脚本位置如下 配置文件位置如下 FastDFS一系列执行脚本如下,其中有上传文件脚本、下载文件脚本等 4. 因为 FastDFS 服务脚本设置的 bin 目录为 /usr/local/bin 下,但我们实际安装在 /usr/bin 下,所以我们要修改 FastDFS 配置文件中的路径,需要修改以下两个配置文件。 4.1 使用以下命令进入编辑模式,然后直接输入":",光标定位到最后一行,在":"后输入"%s+/usr/local/bin+/usr/bin",如下图所示,输入完之后回车,会提示我们修改了 7 处。 4.2 使用以下命令进入编辑模式,然后直接输入":",光标定位到最后一行,在":"后输入"%s+/usr/local/bin+/usr/bin",如下图所示,输入完之后回车,同样会提示我们修改了 7 处。 5. 配置 tracker (跟踪器)。 5.1 进入/etc/fdfs目录下,复制一份 tracker.con.sample 并命名为 tracker.conf ,如下图所示(与此同时我们也复制了一份storage.conf.sample 与 client.conf.sample 后面会编辑到)。 5.2 在 /opt/ 下创建一个文件夹 tracker 。 5.3 编辑 tracker.conf ,修改 base_path 的值为 /opt/tracker (设置 tracker 的数据文件目录和日志目录),如下图所示。 5.4 配置防火墙,开放 tracker 使用的 22122 端口,如下图所示。 5.5 重启防火墙。 5.6 未启动 tracker 之前,/opt/tracker 目录下没有任何文件,如下图所示。 启动 tracker 后,可以看到这个目录下多了一个 data 和 logs 目录,如下图所示。 5.7 设置开机自启动,如下图所示。 6 配置 storage (存储器)。 6.1 进入到 /etc/fdfs 目录下,复制一份 storage.conf.simple 并命名为 storage.conf ,我们在步骤 5.1 已经实现。 6.2 在 /opt/ 下创建一个文件夹 storage。 6.3 编辑 storage.conf 配置文件,修改以下4个地方,第一张图是设置 storage 数据文件目录和日志目录,第二张图是设置实际文件存储路径,第三张图的 tracker_server 的IP为我们自己配置的我的目标机IP(大家需根据自己的虚拟机 IP 自行设置),第四张图是设置 http 端口号。 6.4 配置防火墙,允许访问 storage 默认的 23000 端口,如下图所示。 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 设置开机自启动,如下图所示。 7 配置 client (客户端)。 7.1 进入到 /etc/fdfs 目录下,复制一份 client.conf.simple 并命名为 client.conf ,我们在步骤 5.1 已经实现。 7.2 编辑 client.conf ,修改以下两项内容,第一张图是 tracker 服务器文件路径,第二张图是 tracker 服务器 IP 地址和端口号。 8 上传图片测试。 8.1 利用 SecureCRT 的 SFTP 命令上传一张图片到 /opt 目录下,上传成功后,如下图所示。 8.2 找到命令脚本位置,使用命令进行文件上传。 8.3 使用上传命令上传文件,如下图所示,返回了一个保存图片的位置,则说明已经上传成功。 我们也可以在之前配置的 storage 服务器的实际文件存储路径中根据返回的路径找到实际文件,如下图所示。 1 先安装 Nginx ,大家可以参考 https://blog.csdn.net/weixin_39453325/article/details/82942479 这篇博客进行安装。 2 解压 fastdfs-nginx-module_v1.16.tar.gz (FastDFS 与 Nginx 结合的模块安装包)到 /usr/local/fast 目录下。 3 进入 fastdfs-nginx-module/src 目录下,可看到 config 文件,修改 config 文件,把文件第四行配置中的 /usr/local/include 都改为 /usr/include ,一共需改两处,如下图所示。 4 FastDFS 与 Nginx 相结合。 4.1 删除安装 Nginx 时生成的 nginx 目录。 由于我们在 FastDFS 与 Nginx 整合的第一步已经安装好了 Nginx ,并在 /usr/local 目录下生成一个 nginx 目录了,如下图所示。 为了整合 FastDFS 与 Nginx ,我们先把这个 nginx 目录删除如下图所示,可以看到 nginx 目录已经消失了。 4.2 进入 nginx-1.6.2 目录下执行配置和编译安装。 输入以下命令进行配置,配置成功后有如下界面。 输入以下命令进行安装,如下图所示是安装成功后的界面。 5 复制 fastdfs-nginx-module 中的配置文件到 /etc/fdfs 目录下,并修改该配置文件。 复制 mod_fastdfs.conf 文件到 /etc/fdfs 目录下,如下图所示。 输入以下命令修改配置文件。第一项是连接超时时长,第二项是 tracker 服务器的 IP 地址及端口号,第三项是允许外界通过 http 方式访问资源,第四项是存储路径。 6 复制 fastdfs 里的两个文件到 /etc/fdfs 目录下。 7 创建软链接,在 /opt/storage 文件存储目录下创建软链接,将其链接到实际存放数据的目录,如下图所示。 可在 /opt/storage/data/M00 下查看该链接,如下图所示。 8 进入到整合生成的 /urs/local/nginx 目录下,进入 conf 目录,修改 nginx.conf 配置文件,如下图所示。 9 启动 nginx ,如下图所示为启动成功的界面。 10 配置防火墙,开放 8888 端口,允许外界通过 8888 端口来访问图片。 11 重新启动防火墙。 12 设置 nginx 开机自启动,这样在重新启动设备后,tracker、storage、nginx 都自动启动了,可直接使用服务。 13 在浏览器中通过 http 访问我们刚才上传的图片了(在安装 FastDFS 的第 8.3 步返回的保存图片的位置),如下图所示。 一切正常~,关于 FastDFS 与 Nginx 的整合部署测试已经成功完成。一 搭建虚拟环境
二 配置静态IP且能上网
三 上传安装所需安转包到虚拟机中
四 安装libfastcommon
yum -y install unzip zip
[root@cwxiong software]# unzip libfastcommon-master.zip -d /usr/local/fast/
[root@cwxiong libfastcommon-master]# yum -y install gcc gcc-c++ make automake autoconf libtool perl
[root@cwxiong libfastcommon-master]# ./make.sh && ./make.sh install
五 安装FastDFS
[root@cwxiong software]# tar -zxvf fastdfs-5.05.tar.gz -C /usr/local/fast/
[root@cwxiong fastdfs-5.05]# ./make.sh && ./make.sh install
[root@cwxiong bin]# vi /etc/init.d/fdfs_trackerd
[root@cwxiong bin]# vi /etc/init.d/fdfs_storaged
[root@cwxiong fdfs]# mkdir /opt/tracker
[root@cwxiong fdfs]# vi tracker.conf
[root@cwxiong fdfs]# vi /etc/sysconfig/iptables
[root@cwxiong tracker]# vi /etc/rc.d/rc.local
[root@cwxiong fdfs]# mkdir /opt/storage
[root@cwxiong fdfs]# vi storage.conf
[root@cwxiong fdfs]# vi /etc/sysconfig/iptables
[root@cwxiong data]# vi /etc/rc.local
[root@cwxiong fdfs]# vi client.conf
六 FastDFS与Nginx整合
[root@cwxiong software]# tar -zxvf fastdfs-nginx-module_v1.16.tar.gz -C /usr/local/fast/
[root@cwxiong src]# vi config
[root@cwxiong local]# cd nginx-1.6.2/
[root@cwxiong local]# ./configure --add-module=/usr/local/fast/fastdfs-nginx-module/src/
make && make install
[root@cwxiong fdfs]# vi mod_fastdfs.conf
[root@cwxiong conf]# vi nginx.conf
[root@cwxiong conf]# vi /etc/sysconfig/iptables
[root@cwxiong conf]# vi /etc/rc.d/rc.local