【Fastdfs】Fastdfs分布式文件系统的安装部署使用,结合nginx访问图片,fastdfs连接池connectionpool编写使用,文末有github链接

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

无意中发现了一个巨牛的人工智能教程,忍不住分享一下给大家。教程不仅是零基础,通俗易懂,而且非常风趣幽默,像看小说一样!觉得太牛了,所以分享给大家。点这里可以跳转到教程。

环境:centos 7.X

预编译安装组件

yum install gcc gcc-c++ automake pcre pcre-devel zlip zlib-devel openssl openssl-devel libevent-dev libevent-devel  git -y

 

以上安装完,后续的各个组件都可以成功编译安装了

libfastcommon安装

 

git clone https://github.com/cwtree/libfastcommon.git --depth 1

cd libfastcommon/

./make.sh && ./make.sh install

 

这里我是把源码都fork到我的github仓库里了,以后都直接clone我自己的仓库,为了屏蔽源地址更新带来的风险。

fastdfs安装

git clone https://github.com/cwtree/fastdfs.git --depth=1

 

在fastdfs目录下./make.sh && ./make.sh install

安装完成之后,注意以下两个目录:

fastDFS命令目录:/usr/bin

fastDFS配置文件目录:/etc/fdfs

将官网的配置文件夹下的所有配置拷贝到/etc/fdfs目录下

 

https://github.com/cwtree/fastdfs/tree/master/conf

 

tracker配置启动

 

vim /etc/fdfs/tracker.conf #需要修改的内容如下

port=22122 # tracker服务器端口(默认22122,一般不修改)

base_path=/data/fastdfs # 存储日志和数据的根目录

启停

/etc/init.d/fdfs_trackerd start #启动tracker服务

/etc/init.d/fdfs_trackerd restart #重启动tracker服务

/etc/init.d/fdfs_trackerd stop #停止tracker服务

chkconfig fdfs_trackerd on #自启动tracker服务

 

storage配置启动

 

vim /etc/fdfs/storage.conf #需要修改的内容如下

port=23000 # storage服务端口(默认23000,一般不修改)

base_path=/home/dfs # 数据和日志文件存储根目录

store_path0=/home/dfs # 第一个存储目录

tracker_server=192.168.52.2:22122 # 服务器1

tracker_server=192.168.52.3:22122 # 服务器2

tracker_server=192.168.52.4:22122 # 服务器3

http.server_port=8888 # http访问文件的端口(默认8888,看情况修改,和nginx中保持一致)

 

检测集群信息

/usr/bin/fdfs_monitor /etc/fdfs/storage.conf # 会显示会有几台服务器 有3台就会 显示 Storage 1-Storage 3的详细信息

 

 

启停

/etc/init.d/fdfs_storaged start #启动storage服务

/etc/init.d/fdfs_storaged restart #重动storage服务

/etc/init.d/fdfs_storaged stop #停止动storage服务

chkconfig fdfs_storaged on #自启动storage服务

 

安装fastdfs-nginx-module

 

git clone https://github.com/cwtree/fastdfs-nginx-module.git --depth 1

cp /usr/local/src/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs

cp /xxx/mod_fastdfs.conf /etc/fdfs/

 

编译安装nginx

官网下载安装包

http://nginx.org/en/download.html

将上面的fastdfs-nginx-module模块编译到nginx里

./configure --add-module=/home/fastdfs/fastdfs-nginx-module/src/ --prefix=/home/nginx/install && make && make install

 

修改fastdfs-nginx-module的配置文件

vim /etc/fdfs/mod_fastdfs.conf #需要修改的内容如下

tracker_server=192.168.52.2:22122 # 服务器1

tracker_server=192.168.52.3:22122 # 服务器2

tracker_server=192.168.52.4:22122 # 服务器3

url_have_group_name=true

store_path0=/home/dfs

nginx配置

#配置nginx.config

vim /usr/local/nginx/conf/nginx.conf

#添加如下配置

 

nginx启停

启动命令,指定自定义配置文件启动

/usr/local/nginx/sbin/nginx -c xxx.conf

/usr/local/nginx/sbin/nginx -t -c xxx.conf检查配置文件语法正确性

 

/usr/local/nginx/sbin/nginx #启动

nginx /usr/local/nginx/sbin/nginx -s reload #重启

nginx /usr/local/nginx/sbin/nginx -s stop #停止nginx

 

将fastdfs-nginx模块编译安装nginx里可能会遇到问题

/root/fastdfs-nginx-module-master/src/common.c:1245: error: 'FDFSHTTPParams' has no member named 'support_multi_range'

 root/fastdfs-nginx-module/src//common.c:21:25: fatal error: fdfs_define.h: No such file or directory

/usr/src/fastdfs-nginx-module/src/common.c:21:25:致命错误:fdfs_define.h:没有那个文件或目录
             #include "fdfs_define.h" 

解决如下:

 

ngx_module_incs="/usr/include/fastdfs /usr/include/fastcommon/"

CORE_INCS="$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon/"

 

sed -i 's#(pContext->range_count > 1 && !g_http_params.support_multi_range))#(pContext->range_count > 1))#g' /home/fastdfs/fastdfs-nginx-module/src/common.c | grep '(pContext->range_count > 1))'

 

图片访问测试

图片地址类似这种,每次上传完毕,会返回fileid,自己保存
http://172.28.72.81:8888/group1/M00/00/00/rBxIUVwSVT-ABrjpAACJf1xkvK0026.jpg

 

FASTDFS连接池 pool

fastdfspool连接池的实现,大家可以参照我的github

https://github.com/cwtree/fastdfspool.git

亲测可用

 

 

 

 

 

 

展开阅读全文

没有更多推荐了,返回首页