本文主要介绍fastdfs+nginx集群构建的实现,通过示例代码进行了非常详细的介绍,对大家的学习或工作有一定的参考价值。有需要的朋友下面和边肖一起学习。
一、fastdfs简介
1。什么是fastdfs
2.fastdfs框架图
作者(余庆)给出框架图如下:
其中包括:
跟踪服务器:跟踪服务器,主要用于调度,在访问中起到负载均衡的作用。记录存储服务器的状态,存储服务器是连接客户机和存储服务器的集线器。
存储服务器:存储服务器、文件和元数据都保存在存储服务器
组:组,也可以称为卷。同一组中的服务器上的文件具有完全相同的文件ID:它包括两部分:组名和文件名(包括路径)
元数据:文件相关属性,以及键值对,例如width=1024和heigth=768。
3。上传文件过程
(1)1)客户端询问tracker上传的存储,不需要额外的参数;
(2)tracker返回一个可用存储;;
(3)客户端直接与存储通信,完成文件上传。
4。下载文件过程
(1)1)客户端请求跟踪器下载文件的存储,参数为文件标识(组名和文件名);
(2)tracker返回一个可用存储;;
(3)客户端直接与存储通信,完成文件下载。
5。同步机制
(1)同一组中的存储服务器是对等的,可以在任意一台存储服务器上进行文件上传、删除等 *** 作;
(2)文件同步只在同一组的存储服务器之间进行,采用推送方式,即源服务器同步到目标服务器;
(3)只需要同步源数据,备份数据不需要再次同步,否则会形成循环;
(4)上述第二条规则有一个例外,即当添加新的存储服务器时,现有的存储服务器会将所有现有数据(包括源数据和备份数据)同步到新添加的服务器。
6.跟踪服务器目录结构
(1)数据
存储分组信息
Storage_servers.dat:存储服务器列表
(2)日志
Trackerd.log:tracker服务器日志文件
7.存储服务器目录结构
1)数据
。data_init_flag:当前存储服务器初始化信息
Storage_stat.dat:当前存储服务器统计信息
同步:存储数据同步相关文件。
Binlog.index:当前Binlog文件的索引号。
宾洛格。###:存储更新 *** 作记录(日志)
${ip地址}_${端口}。标志:存储同步的完成。
(2)日志
stored.log:存储服务器日志文件
以上理论参考:
中国Unix论坛:http://bbs.chinaunix.net/forum-240-1.html
Github下载地址:https://github.com/happyfish100
二。fastdfs安装和测试
1。下载
下载:libfastconcommfastdfs(2.0之前的版本需要libevent)
2。安装
(1)安装libfastcommon
$tarxzvflibfastcommon-1.0.38.tar.gz $cdlibfastcommon-1.0.38 $./make.sh $sudo./make.shinstall(2)安装fastdfs
$tarxzvffastdfs-5.11.tar.gz $cdfastdfs-5.11 $./make.sh $sudo./make.shinstall3。配置
设置集群拓扑图(由于硬盘不足,下面的192.168.31.4和192.168.31.14还没有,扩展后再添加)
(1)配置跟踪器(192.168.31.95/192.168.31.99)
$cd/etc/fdfs/目录文件如下所示:
然后,执行以下 *** 作:
$sudosu #cptracker.conf.sampletracker.conf配置tracker.conf文件:
vimtracker.confmodify:base_path=/home/fastdfs/tracker(注意:这个目录在启动前必须存在,否则会报错,找不到路径,这意味着需要手动创建一个新的tracker目录)
开始:
/etc/init.d/fdfs_trackerdstart(2)配置存储(192.168.31.2/192.168.31.12)
$cd/etc/fdfs $sudosu #cpstorage.conf.samplestorage.conf修改:
Group_name=group1(192.168.31.2)或group2(192.168.31.12)
base_path=/home/fastdfs/storage
store_path0=/home/fastdfs/storage
修改:跟踪器服务ip和端口:
tracker_server=192.168.31.95:22122(注:此处31.2tracker_server配置31.95和31.12tracker_server配置31.99)
开始:
/etc/init.d/fdfs_storagedstart检查fastdfs的相应配置信息
#fdfs_monitor/etc/fdfs/storage.conf以下信息被认为是成功的:
测试上传,选择192.168.31.99tracker机器作为fdfs_client。
$cd/etc/fdfs $sudosu #cpclient.conf.sampleclient.conf #vimclient.conf修改:
base_path=/home/fastdfs
tracker_server=192.168.31.99:22122
测试上传net.png文件:
fdfs_upload_file/etc/fdfs/client.confnet.png三。nginx配置[/s2/]
需要安装:
Fast-nginx-module-1.20类似插件的东西
nginx-1.14.2.tar.gz
要安装nginx,您需要安装:
opensslzlibpcre
将astdfs-nginx-module插入nginx(nginx需要配置和制作&&进行安装)
./configure--add-module=../../fastdfs-nginx-module/src/错误:需要修改fastdfs-nginx-module-1.20/src/config文件。
ngx_addon_name=ngx_http_fastdfs_module iftest-n"${ngx_module_link}";then ngx_module_type=HTTP ngx_module_name=$ngx_addon_name ngx_module_incs="/usr/local/include" ngx_module_libs="-lfastcommon-lfdfsclient" ngx_module_srcs="$ngx_addon_dir/ngx_http_fastdfs_module.c" ngx_module_deps= CFLAGS="$CFLAGS-D_FILE_OFFSET_BITS=64-DFDFS_OUTPUT_CHUNK_SIZE='256*1024'-DFDFS_MOD_CONF_FILENAME='\"/etc/fdfs/mod_fastdfs.conf\"'" .auto/module else HTTP_MODULES="$HTTP_MODULESngx_http_fastdfs_module" NGX_ADDON_SRCS="$NGX_ADDON_SRCS$ngx_addon_dir/ngx_http_fastdfs_module.c" CORE_INCS="$CORE_INCS/usr/local/include" CORE_LIBS="$CORE_LIBS-lfastcommon-lfdfsclient" CFLAGS="$CFLAGS-D_FILE_OFFSET_BITS=64-DFDFS_OUTPUT_CHUNK_SIZE='256*1024'-DFDFS_MOD_CONF_FILENAME='\"/etc/fdfs/mod_fastdfs.conf\"'" fi修改为:
ngx_module_incs="/usr/include/fastdfs/usr/include/fastcommon/"
CORE_INCS="$CORE_INCS/usr/include/fastdfs/usr/include/fastcommon/"
然后配置并制作&;进行安装
接下来,cpmod_fastdfs.conf/etc/fdfs/并修改mod_fastdfs.conf文件。
$cdfastdfs-nginx-module-1.20/src $cpmod_fastdfs.conf/etc/fdfs/修改mod_fastdfs.conf
tracker_server=192.168.31.99:22122 store_path0=/home/fastdfs/storage group_name=group1 [group1] group_name=group1 storage_server_port=23000 store_path_count=1 store_path0=/home/fastdfs/storage [group2] group_name=group2 storage_server_port=23000 store_path_count=1 store_path0=/home/fastdfs/storageWillfastdfs-5.11/conf/
$cphttp.conf/etc/fdfs/ $cpmime.types/etc/fdfs/已修改:http.conf
http.anti_steal.token_check_fail=/home/fastdfs/fastdfs-5.11/conf/修改nginx.conf
cd/usr/local/nginx/sbin vim../conf/nginx.conf888端口号对应于/etc/etc/fdfs/storage.conf中的http.server_port=8888
上传一张图片
http://192.168.31.12:8888/group1/M00/00/00/wkgfdfzxvtyam4suabwwvfb6x_k962.png
关于fastdfs+nginx集群构建的实现,本文到此结束。有关fastdfs+nginx集群构建的更多信息,请搜索我们以前的文章或继续浏览下面的相关文章。希望大家以后能多多支持我们!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)