概述
文件的上传与下载功能在绝大多数项目中都要用到,如果自己去写一个上传与下载服务,是有点难过的,那就尝试一下别人的轮子,说实话,搭建一个这样的服务用了一整天的时间,网上充斥着各种各样的资料,残缺不全...,为了重新演示一下这个过程我装了一个虚拟机,操作系统为ubuntu16.04摘抄一段别人的话:FastDFS是由淘宝的余庆先生所开发,是一个轻量级、高性能的开源分布式文件系统,用纯C语言开发,包括文件存储、文件同步、文件访问(上传、下载)、存取负载均衡、在线扩容、相同内容只存储一份等功能,适合有大容量存储需求的应用或系统。做分布式系统开发时,其中要解决的一个问题就是图片、音视频、文件共享的问题,分布式文件系统正好可以解决这个需求。同类的分布式文件系统有谷歌的GFS、HDFS(Hadoop)、TFS(淘宝)等。
原理暂时先不说,直接上操作。操作熟练之后再来考虑原理吧。
1. 安装FastDFS
1.1 安装libfastcommon
libfastcommon是FastDFS的一个公共库,在安装FastDFS之前要先安装这个库
#下载并且解压
$ wget https://github.com/happyfish100/libfastcommon/archive/master.zip
$ unzip master.zip
#编译
$ ./make.sh
#安装
$ ./make.sh install
1.2 安装FastDFS
与安装libfastcommon过程类似
#下载并且解压
$ wget https://github.com/happyfish100/fastdfs/archive/V5.11.zip
$ unzip V5.11.zip
#编译
$ ./make.sh
#安装
$ ./make.sh install
1.3 新建目录作为FastDFS文件存储目录
由于现在只有一个Storage所以只需要创建一个目录就可以了,为了方便,我将该目录创建在自己的家目录中
$ cd /home/charles
$ mkdir fastdfs
1.4 配置跟踪服务器
其实到1.2结束后FastDFS就已经安装好了,配置文件放置在/etc/fdfs目录下,可执行文件放置在/usr/bin下。配置文件默认是以.sample结尾的,我们需要将其去掉(用到哪个配置文件去掉哪个sample)
$ cd /etc/fdfs
$ mv tracker.conf.sample tracker.conf
$ vi tracker.conf
#注意:仅修改了如下数据
22: base_path=/home/charles/fastdfs
1.5 配置存储服务器
与1.4相同的方法执行修改操作
$ cd /etc/fdfs
$ mv storage.conf.sample storage.conf
$ vi storage.conf
#注意:仅修改了如下数据
41: base_path=/home/charles/fastdfs
...
109: store_path0=/home/charles/fastdfs
...
#注意,这里的ip为tracker的id地址
118: tracker_server=192.168.15.132:22122
1.6 启动tracker与storage
找到对应的可执行文件执行启动操作即可
$ cd /usr/bin
$ ./fdfs_trackerd /etc/fdfs/tracker.conf restart
$ ./fdfs_storaged /etc/fdfs/storage.conf restart
启动成功后,如果查看/home/charles/fastdfs可以看到data,logs目录,在data目录中已经具有了文件存储目录结构
1.7 测试上传
截止目前,fastdfs已经搭建好了,实际上很简单,无非就是linux系统下的软件安装与配置,这里提醒,学好linux是编程的第一步。
1.7.1 修改配置文件client.conf
该配置文件也位于/etc/fdfs目录下
$ mv client.conf.sample client.conf
$ vi client.conf
# 修改了如下数据
10: base_path=/home/charles/fastdfs
14: tracker_server=192.168.15.132:22122
1.7.2 调用fdfs_upload_file命令执行上传操作
同样,fdfs_upload_file命令位于/usr/bin目录下
$ cd /usr/bin
$ ./fdfs_upload_file /etc/fdfs/client.conf /home/briup/tutu.jpeg
返回值 group1/M00/00/00/wKgPhFuXVdaAbeLFAADJj3NnELQ56.jpeg表示该文件在fastDFS中的位置。
特别注意: 由于余老师在 V4.05 以后的版本就把内置 HTTP服务去掉了,所以我们测试上传成功了,但是却无法访问。推荐大家结合 Nginx 使用 fastdfs-nginx-module 模块,
2. 安装nginx与fastdfs-nginx-module
2.1 安装nginx依赖
在ubuntu系统中,必须安装zlib,pcre 才能安装nginx
$ sudo apt-get install libpcre3 libpcre3-dev
$ sudo apt-get install zlib1g-dev
2.2 下载fastdfs-nginx-module并且配置
这里我采用git直接从github中克隆下来
$ cd ~
$ git clone https://github.com/happyfish100/fastdfs-nginx-module.git
$ cd fastdfs-nginx-module/src
$ vi config
2.3 安装nginx
官网下载nginx,然后将其拷贝到服务器中
$ tar -xvf nginx-1.14.0.tar.gz
$ cd nginx-1.14.0
$ ./configure --prefix=/usr/local/nginx --add-module=/home/charles/fastdfs-nginx-module/src/
$ make
$ make install
nginx会被安装到/usr/local/nginx中
2.4配置nginx
由于服务器中的80端口被占用,所以修改nginx的端口号为8888
$ cd /usr/local/nginx
$ vi conf/nginx.conf
35: server {
36: listen 8888;
37: server_name 192.168.15.132;
38: ...
location ~/group([0-9])/M00 {
ngx_fastdfs_module;
}
# 修改完成后重新启动
$ ./sbin/nginx -s reload
这时候如果访问你会发现nginx没有响应。这是由于你没有加载插件配置的原因
将fastdfs-5.11/conf中的http.conf与mime.types拷贝到/etc/fdfs目录中以备fastdfs-nginx-module的配置文件调用。
$ cd /home/charles/fastdfs-5.11/conf
$ cp http.conf /etc/fdfs/
$ cp mime.types /etc/fdfs/
将fastdfs-nginx-module/src中的mod_fastdfs.conf 也拷贝到/etc/fdfs目录中
$ cd /home/charles/fastdfs-nginx-module/src
$ cp mod_fastdfs.conf /etc/fdfs/
修改mod_fastdfs.conf
10 base_path=/home/charles/fastdfs
40 tracker_server=192.168.15.132:22122
52 url_have_group_name = true
61 store_path0=/home/charles/fastdfs
重启nginx即可。
最后
以上就是糊涂小刺猬为你收集整理的 fastdfs-服务器搭建1. 安装FastDFS2. 安装nginx与fastdfs-nginx-module的全部内容,希望文章能够帮你解决 fastdfs-服务器搭建1. 安装FastDFS2. 安装nginx与fastdfs-nginx-module所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复