免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
1234下一页
最近访问板块 发新帖
查看: 47083 | 回复: 37
打印 上一主题 下一主题

[FastDFS] FastDFS通过HTTP下载文件 [复制链接]

论坛徽章:
4
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:56:11IT运维版块每日发帖之星
日期:2016-08-11 06:20:00IT运维版块每日发帖之星
日期:2016-08-15 06:20:00
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-02-28 16:05 |只看该作者 |倒序浏览
本帖最后由 happy_fish100 于 2010-02-28 16:27 编辑

FastDFS从V1.20开始,支持通过HTTP协议下载文件。为了确保刚上传还没有同步到其他storage server的文件也能够被正确地下载,推荐HTTP下载文件的流程如下图:


为了确保文件能被正确下载,不要直接从一台storage server下载文件,而应该通过tracker server自带的web server跳转。
FastDFS为tracker和storage分别提供了内置的web server,使用了libevent的evhttp框架。evhttp采用了异步网络IO,可以支持大并发连接。目前采用了单线程模式,如果请求处理中不存在慢操作(如读取磁盘文件),此时不存在性能瓶颈,性能还是不错的。推荐的配置方案为:使用tracker自带的web server,在storage server上架设其他web server,如nginx、apache。
tracker和storage内置web server,下载文件的URL规则为: http://{ip_addr}:{port}/{file_id}
file_id:上传文件时,FastDFS server端返回的文件ID,包括组名(group name)和带路径的文件名,格式为:{group_name}/{Mxx}/filename
group_name:组名,也称作卷名
Mxx:xx为十六进制字符,表示存放的基路径(base path)序号。如果存放的base path只有一个,那固定就是M00
一个文件URL如:http://192.168.1.14:8080/group1/M00/00/00/wKgBDkuKAXcAAAAAAABdrXQrT3c970.jpg

在storage server上架设的web server,如果只有一个基路径,那只需要将web server的document root配置到{base_path}/data,对应的web路径配置为{group_name}/M00。
如果有多个base path,需要分别配置web路径。

论坛徽章:
0
2 [报告]
发表于 2010-03-10 15:59 |只看该作者
本帖最后由 sunng 于 2010-03-10 16:09 编辑

fish大大您好,文中提到的"推荐的配置方案为:使用tracker自带的web server,在storage server上架设其他web server,如nginx、apache"

这个意思是要将storage server配置文件中的http.disabled设置为true,然后自己配置一个web server吗?

如果是这样的话,那自己配置的web server的端口如何设置呢?

论坛徽章:
4
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:56:11IT运维版块每日发帖之星
日期:2016-08-11 06:20:00IT运维版块每日发帖之星
日期:2016-08-15 06:20:00
3 [报告]
发表于 2010-03-10 16:59 |只看该作者
fish大大您好,文中提到的"推荐的配置方案为:使用tracker自带的web server,在storage server上架设其他we ...
sunng 发表于 2010-03-10 15:59


是的。配置storage.conf中的参数http.server_port为其他web server(如apache)提供的服务端口(如80)即可。

论坛徽章:
0
4 [报告]
发表于 2010-03-10 18:33 |只看该作者
谢谢,另外
“在storage server上架设的web server,如果只有一个基路径,那只需要将web server的document root配置到{base_path}/data,对应的web路径配置为{group_name}/M00。”

这个里面的“对应的web路径配置为{group_name}/M00”指的是什么配置呢?我是想在storage上配置个nginx

论坛徽章:
4
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:56:11IT运维版块每日发帖之星
日期:2016-08-11 06:20:00IT运维版块每日发帖之星
日期:2016-08-15 06:20:00
5 [报告]
发表于 2010-03-10 19:00 |只看该作者
谢谢,另外
“在storage server上架设的web server,如果只有一个基路径,那只需要将web server的document ...
这个里面的“对应的web路径配置为{group_name}/M00”指的是什么配置呢?我是想在storage上配置个nginx
sunng 发表于 2010-03-10 18:33


就是WEB 访问的基路径。
例如:http://192.168.1.14:8080/group1/M00/00/00/wKgBDkuKAXcAAAAAAABdrXQrT3c970.jpg
URL路径前面的/group1/M00需要配置为WEB基路径。

论坛徽章:
0
6 [报告]
发表于 2010-03-11 11:04 |只看该作者
我将storage server配置文件中的http.disabled设置为true,重启storage之后,tracker出现了下面这个错误打印

[2010-03-11 11:12:02] ERROR - file: tracker_mem.c, line: 2375, client ip: 10.60.32.64, http port 0 is not same in the group "group1", group http port is 8888

此时8888端口已经启动了我配置的web server,从storage上访问某个文件是可以的,但是从tracker上访问这个文件却访问不到,请问和上面这个错误打印有关系吗?

另外,如何修改某组storage的配置呢?(比如说我想修改group1的端口,从23000改成23100)

谢谢

论坛徽章:
4
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:56:11IT运维版块每日发帖之星
日期:2016-08-11 06:20:00IT运维版块每日发帖之星
日期:2016-08-15 06:20:00
7 [报告]
发表于 2010-03-11 11:29 |只看该作者
回复 6# sunng

组内所有storage server的服务端口包括HTTP端口,都必须相同。
如果要更改某个组的端口号,更改该组所有storage server的之后,重启该组所有storage server程序即可。

论坛徽章:
0
8 [报告]
发表于 2010-03-11 11:40 |只看该作者
本帖最后由 sunng 于 2010-03-11 11:47 编辑

哦,更改组配置这个明白了,但是实际操作中发现还需要重启所有的tracker。

那上面那行错误打印的那个是什么原因呢?

谢谢

论坛徽章:
4
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:56:11IT运维版块每日发帖之星
日期:2016-08-11 06:20:00IT运维版块每日发帖之星
日期:2016-08-15 06:20:00
9 [报告]
发表于 2010-03-11 11:52 |只看该作者
回复 8# sunng

恩,有的情况下需要重启tracker server的。服务端口不会经常更改的吧?!

论坛徽章:
0
10 [报告]
发表于 2010-03-11 12:00 |只看该作者
回复 9# happy_fish100


    生产系统不会修改了,那。。那。。。那。。。还有另外一个问题您还没理我呢。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP