搭建FastDFS
---恢复内容开始---
FastDFS是用c语言编写的一款开源的分布式文件系统。FastDFS为互联网量身定制,充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标,使用FastDFS很容易搭建一套高性能的文件服务器集群提供文件上传、下载等服务,文件上传流程如下图所示:

图片下载流程类似
1.1 上传文件的文件名
客户端端上传文件后存储服务器将文件ID返回给客户端,此文件ID用于以后访问该文件的索引信息。文件索引信息包括:组名,虚拟磁盘路径,数据两级目录,文件名。
(1). 组名:文件上传后所在的storage组名称,在文件上传成功后有storage服务器返回,需要客户端自行保存。
(2). 虚拟磁盘路径:storage配置的虚拟路径,与磁盘选项store_path*对应。如果配置了store_path0则是M00,如果配置了store_path1则是M01,以此类推。
(3). 数据两级目录:storage服务器在每个虚拟磁盘路径下创建的两级目录,用于存储数据文件。
(4). 文件名:与文件上传时不同。是由存储服务器根据特定信息生成,文件名包含:源存储服务器IP地址、文件创建时间戳、文件大小、随机数和文件拓展名等信息。
1.2 FastDFS搭建

可以使用一台虚拟机来模拟,只有一个Tracker、一个Storage服务,配置nginx访问图片。详细步骤如下:
1.3 搭建步骤
(1). 把fastDFS都上传到linux系统。
(2). 安装FastDFS之前,先安装libevent工具包。
yum -y install libevent
(3). 安装libfastcommonV1.0.7工具包。
<1> 解压缩
<2> ./make.sh
<3> ./make.sh install
<4> 把/usr/lib64/libfastcommon.so文件向/usr/lib/下复制一份
(4). 安装Tracker服务。
<1> 解压缩
<2> ./make.sh
<3> ./make.sh install
安装后在/usr/bin/目录下有以fdfs开头的文件都是编译出来的,配置文件都放到/etc/fdfs文件夹
<4> 把/root/FastDFS/conf目录下的所有的配置文件都复制到/etc/fdfs下。
<5> 配置tracker服务,修改/root/FastDFS/conf/tracker.conf文件。

<6> 启动tracker。/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf
重启使用命令:/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart
(5). 安装storage服务
<1> 如果是在不同的服务器安装,第四步的1~4需要重新执行
<2> 配置storage服务。修改/root/FastDFS/conf/storage.conf文件



<3> 启动storage服务
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart
(6). 测试服务
<1> 修改配置文件/etc/fdfs/client.conf


执行命令: /usr/bin/fdfs_test /etc/fdfs/client.conf upload anti-steal.jpg 上传anti-steal.jpg到配置文件中指定目录下
(7). 搭建nginx提供http服务
可以使用官方提供的nginx插件。要使用nginx插件需要重新编译。fastdfs-nginx-module_v1.16.tar.gz
<1> 解压插件压缩包
<2> 修改/root/fastdfs-nginx-module/src/config文件,把其中的local去掉。

<3> 对nginx重新config
./configure \
--prefix=/usr/local/nginx \
--pid-path=/var/run/nginx/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--with-http_gzip_static_module \
--http-client-body-temp-path=/var/temp/nginx/client \
--http-proxy-temp-path=/var/temp/nginx/proxy \
--http-fastcgi-temp-path=/var/temp/nginx/fastcgi \
--http-uwsgi-temp-path=/var/temp/nginx/uwsgi \
--http-scgi-temp-path=/var/temp/nginx/scgi \
--add-module=/root/fastdfs-nginx-module/src
<4> make
<5> make install
<6> 把/root/fastdfs-nginx-module/src/mod_fastdfs.conf文件复制到/etc/fdfs目录下。编辑:




<7> nginx的配置
在nginx的配置文件中添加一个Server:
server {
listen ;
server_name 192.168.101.3; // 必须配置为本机IP地址,localhost 貌似有些情况不行
location /group1/M00/{
//配置文件中数据存放目录
root /home/FastDFS/fdfs_storage/data;
ngx_fastdfs_module;
}
}
<8> 将libfdfsclient.so拷贝至/usr/lib下
cp /usr/lib64/libfdfsclient.so /usr/lib/
<9> 启动nginx
备注:
有些情况下,图片上传成功,但浏览器就是无法查看该图片,经常出现404错误,根据实际情况,主要有以下几种解决情况:
1. 文件存放目录权限问题,可以增加目录的读写权限
chmod -R 777 path_data
2. nginx的nginx.conf配置文件中第一行 user属性指定为:root
3. 配置server的时候,尽量不要使用localhost,以ip地址取代之,同时需要配置location属性中的文件存放目录,即就是:
root /home/FastDFS/fdfs_storage/data;
---恢复内容结束---
---恢复内容开始---
FastDFS是用c语言编写的一款开源的分布式文件系统。FastDFS为互联网量身定制,充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标,使用FastDFS很容易搭建一套高性能的文件服务器集群提供文件上传、下载等服务,文件上传流程如下图所示:

图片下载流程类似
1.1 上传文件的文件名
客户端端上传文件后存储服务器将文件ID返回给客户端,此文件ID用于以后访问该文件的索引信息。文件索引信息包括:组名,虚拟磁盘路径,数据两级目录,文件名。
(1). 组名:文件上传后所在的storage组名称,在文件上传成功后有storage服务器返回,需要客户端自行保存。
(2). 虚拟磁盘路径:storage配置的虚拟路径,与磁盘选项store_path*对应。如果配置了store_path0则是M00,如果配置了store_path1则是M01,以此类推。
(3). 数据两级目录:storage服务器在每个虚拟磁盘路径下创建的两级目录,用于存储数据文件。
(4). 文件名:与文件上传时不同。是由存储服务器根据特定信息生成,文件名包含:源存储服务器IP地址、文件创建时间戳、文件大小、随机数和文件拓展名等信息。
1.2 FastDFS搭建

可以使用一台虚拟机来模拟,只有一个Tracker、一个Storage服务,配置nginx访问图片。详细步骤如下:
1.3 搭建步骤
(1). 把fastDFS都上传到linux系统。
(2). 安装FastDFS之前,先安装libevent工具包。
yum -y install libevent
(3). 安装libfastcommonV1.0.7工具包。
<1> 解压缩
<2> ./make.sh
<3> ./make.sh install
<4> 把/usr/lib64/libfastcommon.so文件向/usr/lib/下复制一份
(4). 安装Tracker服务。
<1> 解压缩
<2> ./make.sh
<3> ./make.sh install
安装后在/usr/bin/目录下有以fdfs开头的文件都是编译出来的,配置文件都放到/etc/fdfs文件夹
<4> 把/root/FastDFS/conf目录下的所有的配置文件都复制到/etc/fdfs下。
<5> 配置tracker服务,修改/root/FastDFS/conf/tracker.conf文件。

<6> 启动tracker。/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf
重启使用命令:/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart
(5). 安装storage服务
<1> 如果是在不同的服务器安装,第四步的1~4需要重新执行
<2> 配置storage服务。修改/root/FastDFS/conf/storage.conf文件



<3> 启动storage服务
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart
(6). 测试服务
<1> 修改配置文件/etc/fdfs/client.conf


执行命令: /usr/bin/fdfs_test /etc/fdfs/client.conf upload anti-steal.jpg 上传anti-steal.jpg到配置文件中指定目录下
(7). 搭建nginx提供http服务
可以使用官方提供的nginx插件。要使用nginx插件需要重新编译。fastdfs-nginx-module_v1.16.tar.gz
<1> 解压插件压缩包
<2> 修改/root/fastdfs-nginx-module/src/config文件,把其中的local去掉。

<3> 对nginx重新config
./configure \
--prefix=/usr/local/nginx \
--pid-path=/var/run/nginx/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--with-http_gzip_static_module \
--http-client-body-temp-path=/var/temp/nginx/client \
--http-proxy-temp-path=/var/temp/nginx/proxy \
--http-fastcgi-temp-path=/var/temp/nginx/fastcgi \
--http-uwsgi-temp-path=/var/temp/nginx/uwsgi \
--http-scgi-temp-path=/var/temp/nginx/scgi \
--add-module=/root/fastdfs-nginx-module/src
<4> make
<5> make install
<6> 把/root/fastdfs-nginx-module/src/mod_fastdfs.conf文件复制到/etc/fdfs目录下。编辑:




<7> nginx的配置
在nginx的配置文件中添加一个Server:
server {
listen ;
server_name 192.168.101.3; // 必须配置为本机IP地址,localhost 貌似有些情况不行
location /group1/M00/{
//配置文件中数据存放目录
root /home/FastDFS/fdfs_storage/data;
ngx_fastdfs_module;
}
}
<8> 将libfdfsclient.so拷贝至/usr/lib下
cp /usr/lib64/libfdfsclient.so /usr/lib/
<9> 启动nginx
备注:
有些情况下,图片上传成功,但浏览器就是无法查看该图片,经常出现404错误,根据实际情况,主要有以下几种解决情况:
1. 文件存放目录权限问题,可以增加目录的读写权限
chmod -R 777 path_data
2. nginx的nginx.conf配置文件中第一行 user属性指定为:root
3. 配置server的时候,尽量不要使用localhost,以ip地址取代之,同时需要配置location属性中的文件存放目录,即就是:
root /home/FastDFS/fdfs_storage/data;
---恢复内容结束---
搭建FastDFS的更多相关文章
- linux搭建FastDFS文件服务器
本文主要介绍在linux服务器如何搭建FastDFS文件服务器.大概分为9个步骤,由于内容较为繁琐.下面带你入坑! 首先简单介绍一下FastDFS是淘宝资深架构师余庆老师主导开源的一个分布式文件系统, ...
- CentOS7搭建FastDFS V5.11分布式文件系统-第一篇
1.绪论 最近要用到fastDFS,所以自己研究了一下,在搭建FastDFS的过程中遇到过很多的问题,为了能帮忙到以后搭建FastDFS的同学,少走弯路,与大家分享一下.FastDFS的作者淘宝资深架 ...
- 手把手教你搭建FastDFS集群(下)
手把手教你搭建FastDFS集群(下) 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/u0 ...
- 手把手教你搭建FastDFS集群(中)
手把手教你搭建FastDFS集群(中) 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/u0 ...
- 手把手教你搭建FastDFS集群(上)
手把手教你搭建FastDFS集群(上) 本文链接:https://blog.csdn.net/u012453843/article/details/68957209 FastDFS是一个 ...
- CentOS7搭建FastDFS V5.11分布式文件系统(一)
1.绪论 最近要用到fastDFS,所以自己研究了一下,在搭建FastDFS的过程中遇到过很多的问题,为了能帮忙到以后搭建FastDFS的同学,少走弯路,与大家分享一下.FastDFS的作者淘宝资深架 ...
- 实战:docker搭建FastDFS文件系统并集成SpringBoot
实战:docker搭建FastDFS文件系统并集成SpringBoot 前言 15年的时候,那时候云存储还远远没有现在使用的这么广泛,归根结底就是成本和安全问题,记得那时候我待的公司是做建站开发的,前 ...
- 【FastDFS】小伙伴们说在CentOS 8服务器上搭建FastDFS环境总报错?
写在前面 在[冰河技术]微信公众号的[分布式存储]专题中,我们分别搭建了单节点FastDFS环境和高可用FastDFS集群环境.但是,之前的环境都是基于CentOS 6.8服务器进行搭建的.很多小伙伴 ...
- 一、手把手教你docker搭建fastDFS文件上传下载服务器
在搭建fastDFS文件上传下载服务器之前,你需要准备的有一个可连接的linux服务器,并且该linux服务器上已经安装了docker,若还有没安装docker的,先百度自行安装docker. 1.执 ...
- 在CentOS 8服务器上搭建FastDFS环境
什么是FastDFS? 这里,我就摘录下百度百科上对于FastDFS的描述. FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储.文件同步.文件访问(文件上传.文件下 ...
随机推荐
- jffs2系统制作2
http://blog.chinaunix.net/uid-23208702-id-353022.html 1.2. 安装zlib库 由于交叉编译mtd工具时需要zlib.h文件,所以在编译之前先 ...
- Python高级编程之生成器(Generator)与coroutine(四):一个简单的多任务系统
啊,终于要把这一个系列写完整了,好高兴啊 在前面的三篇文章中介绍了Python的Python的Generator和coroutine(协程)相关的编程技术,接下来这篇文章会用Python的corout ...
- win10无法访问局域网共享文件?(因微软账户和本地账户登陆问题导致)
1 笔记本系统win10 X64企业版,其中一文件夹已设置为“共享”.本地帐号登录系统. 2 平板电脑系统win8.1 X64专业版,可以顺畅的访问笔记本的共享文件.微软帐号登录系统. 3 平板电脑系 ...
- vim打开后乱码,xshell打开后也是乱码,设置自动出现行号
Xshell对于嵌入式开发来说,是个非常不错的工具.但或许都有过被中文显示为乱码的问题感觉有点不爽.解决方法其实很简单的,即把xshell编码方式改成UTF-8即可. [文件]–>[打开]–&g ...
- MYSQL的用户变量(@)和系统变量(@@)
9.3. 用户变量 可以先在用户变量中保存值然后在以后引用它:这样可以将值从一个语句传递到另一个语句.用户变量与连接有关.也就是说,一个客户端定义的变量不能被其它客户端看到或使用.当客户端退出时,该客 ...
- Spring 4 官方文档学习(十一)Web MVC 框架之locales
http://docs.spring.io/spring/docs/current/spring-framework-reference/html/mvc.html#mvc-localeresolve ...
- 象“[]”、“.”、“->”这类操作符前后不加空格
象“[]”.“.”.“->”这类操作符前后不加空格. #include <iostream> #include <process.h> #include<stdio ...
- (转) 打开声音设备需要使用waveOutOpen函数
转自:http://blog.csdn.net/nokianasty/article/details/8558151 打开声音设备 打开声音设备需要使用waveOutOpen函数(可以在您的文档中查到 ...
- 防止 apk反编译 jocky-- java混淆代码 (转至:http://my.oschina.net/f839903061/blog/72554)
1.下载jocky,解压后把整个文件夹复制到Eclipse的plugin目录.2.重启Eclipse,在项目上点右键,如果出现jocky菜单,则安装成功. 3.在项目上点右键,选菜单jocky-> ...
- AsyncTask执行顺序
这几天,遇见个奇葩问题,记录一下. 在用AsyncTask的时候,new 出来的AsyncTask总是等了很久才执行到. 于是乎,想到了是不是前面已经有好几个AsyncTask的实例了,是不是线程优先 ...