FastDFS安装过程中会出现很多的问题,现如今就做一次安装总结 顺便分享给大家解决问题的思路
FastDFS是一个开源的分布式文件系统,它对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册网站、视频网站等等;目前提供了 C 和 Java SDK ,以及 PHP 扩展 SDK。 FastDFS 专为互联网应用量身定做,解决大容量文件存储问题,追求高性能和高扩展性,它可以看做是基于文件的 key/value 存储系统,key 为文件 ID,value 为文件内容,因此称作分布式文件存储服务更为合适。
FastDFS服务端有两个角色:跟踪器(tracker)和存储节点(storage)。跟踪器主要做调度工作,在访问上起负载均衡的作用。。
作为一款分布式文件管理系统,FastDFS 主要包括四个方面的功能:
文件存储文件同步文件上传文件下载 这四个方面的功能,基本上就能搞定我们常见的文件管理需求了。FastDFS特点如下:
1)分组存储,简单灵活;2)对等结构,不存在单点;3)文件ID由FastDFS生成,作为文件访问凭证。FastDFS不需要传统的name server或meta server;4)大、中、小文件均可以很好支持,可以存储海量小文件;5)一台storage支持多块磁盘,支持单盘数据恢复;6)提供了nginx扩展模块,可以和nginx无缝衔接;7)支持多线程方式上传和下载文件,支持断点续传;8)存储服务器上可以保存文件附加属性。Tracker 和 Storage 我将安装在同一台服务器上。 图片上传我们一般使用 FastDFS,图片上传成功之后,接下来的图片访问我们一般采用 Nginx,所以这里的安装我将从三个方面来介绍:
Tracker 安装Storage 安装Nginx 安装安装,我们首先需要准备一个环境两个库以及一个安装包。
先来看一个环境,由于 FastDFS 采用 C 语言开发,所以在安装之前,如果没有 gcc 环境,需要先安装,安装命令如下:
yum install gcc-c++将下载好的 libfastcommon 拷贝至【 /usr/local/ 】目录下,然后依次执行如下命令:
cd /usr/local tar -zxvf V1.0.43.tar.gz cd libfastcommon-1.0.43/ ./make.sh ./make.sh install接下来我们下载 Tracker,注意,由于 Tracker 和 Storage 是相同的安装包,所以下载一次即可,安装storage的时候不需要重复下载 fastdfs-6.06.tar.gz
下载成功后,将下载文件拷贝到** /usr/local **目录下,然后依次执行如下命令安装:
cd /usr/local tar -zxvf V6.06.tar.gz cd fastdfs-6.06/ ./make.sh ./make.sh install 如果在执行【./make.sh】命令的的过程中出现报错的情况, 尝试使用下面的命令执行安装 yum -y install zlib zlib-devel pcre pcre-devel gcc gcc-c++ openssl openssl-devel libevent libevent-devel perl unzip net-tools wget ./make.sh clean ./make.sh ./make.sh install安装成功后,执行如下命令,将安装目录内 conf 目录下的配置文件拷贝到 /etc/fdfs 目录下:
cd conf/ cp ./* /etc/fdfs/接下来进入 /etc/fdfs/ 目录下进行配置: 打开 tracker.conf 文件:
vi tracker.conf修改如下配置:
port = 22122 #根据实际使用情况进行修改 base_path = /home/java/fasttdfs #元数据存储目录,自定义默认端口是 22122,可以根据实际需求修改,配置一下元数据的保存目录(注意目录要存在)
接下来执行如下命令启动 Tracker:
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf start如此之后,我们的 Tracker 就算安装成功了。
Storage 安装也需要 libevent 和 libfastcommon,具体下载安装方式参考2.1 Storage 本身的安装,也和 Tracker 一致,执行命令也都一样,因为我这里将 Tracker 和 Storage 安装在同一台服务器上,所以不用再执行安装命令了(相当于安装 Tracker 时已经安装了 Storage 了)
唯一要做的,就是进入到 /etc/fdfs 目录下,配置 Storage: 这里一共配置三个地方,分别是 base_path、store_path0 以及 tracker_server ,tracker_server 模板有两个地址,我们这里只有一个,配置完成后,记得注释掉另外一个不用的。
port = 22122 #根据实际使用情况进行修改 base_path = /home/java/fasttdfs #元数据存储目录,自定义 store_path0 = /home/java/fasttdfs tracker_server= 127.0.0.1:22122执行如下命令启动Storage
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf start这两个启动完成后,现在就可以做文件的上传了,但是一般如果是图片文件,我们还需要提供一个图片的访问功能,目前来说最佳方案当然是 Nginx 了,所以我们这里连同 Nginx 一起配置好
Nginx 可以算是 FastDFS 的重要搭档。 FastDFS 搭配Nginx需要两个步骤
安装 Nginx在 Storage 下安装 fastdfs-nginx-module首先下载 Nginx
wget http://nginx.org/download/nginx-1.17.0.tar.gz然后解压下载的目录,进入解压目录中,在编译安装之前,需要安装以下依赖: 查看是否安装
rpm -q gcc rpm -q openssl rpm -q zlib rpm -q pcre执行安装
yum -y install pcre-devel yum -y install openssl openssl-devel yum -y install zlib zlib-devel进入nginx解压目录,然后开始编译安装(因为需要搭配FastDFS,可以暂缓):
./configure ./make ./make install执行完安装之后,默认安装位置在 :
/usr/local/nginx默认启动位置在:
/usr/local/nginx/sbin/nginxNginx 启动成功之后,在shell环境中执行
curl 127.0.0.1或者 在浏览器中直接访问服务器地址 如果在shell中能够看到nginx首页的源代码或者可以看到下图Nginx启动首页 ,就表示nginx启动成功,如果看不到,请检查防火墙是否关闭
# 查看防火墙状态 systemctl status firewalld.service # 关闭防火墙 systemctl stop firewalld.service # 开机禁用防火墙 systemctl disable firewalld.service如果修改了 Nginx 配置,则可以通过如下命令重新加载 Nginx 配置文件:
/usr/local/nginx/sbin/nginx -s reload首先下载 fastdfs-nginx-module,下载地址: fastdfs-nginx-module 将下载的文件拷贝到 /usr/local 目录下。然后进入 /usr/local 目录,分别执行如下命令:
cd /usr/local tar -zxvf fastdfs-nginx-module-1.22.tar.gz然后将 /usr/local/fastdfs-nginx-module-1.22/src/mod_fastdfs.conf 文件拷贝到 /etc/fdfs/ 目录下,并修改该文件的内容:
cd /usr/local/fastdfs-nginx-module-1.22/src cp mod_fastdfs.conf /etc/fdfs vi /etc/fdfs/mod_fastdfs.conf其中修改项为:
tracker_server = 服务器地址+端口 url_have_group_name = true store_path0=/home/java/fastdfs接下来,回到第一步下载的 nginx 安装文件的解压目录中,执行如下命令,重新配置编译安装:
./configure --add-module=/usr/local/fastdfs-nginx-module-1.22/src make make install修改nginx的conf配置
vi /usr/local/nginx/conf/nginx.conf重新启动nginx
/usr/local/nginx/sbin/nginx能看到
ngx_http_fastdfs_set pid=124228说明启动成功
更多的详细的Linux相关命令可以查看我后续的博客,也可以上网查询更多的命令 这就是FastDFS搭配Nginx的安装与配置