免费注册 查看新帖 |

Chinaunix

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

[FastDFS] 请教nginx http下载问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-09-14 17:18 |只看该作者 |倒序浏览
最近在试验fastDFS,用内置的web server能正常工作,但在压力下storage性能不够
试验在storage用nginx

修改nginx.conf文件,添加
       location /group1/M00 {
            alias /home/fastdfs/fastdfs_storage/data;
            ngx_fastdfs_module;
        }
修改mod_fastdfs.conf
tracker_server=192.168.36.69:22122
base_path=/home/fastdfs/fastdfs_storage
url_have_group_name = true
store_path0=/home/fastdfs/fastdfs_storage

启动tracker, storage, nginx
用客户端上传一个文件,得到file Id :M00/00/00/wKgkRU5wVf_TV4HkAB-K5_ZWmJ4622.mp3
用客户端下载正常,但在浏览器下载报错:404 Not Founc,用的url:http://192.168.36.69/group1/M00/ ... 4AB-K5_ZWmJ4421.mp3
查看nginx的error.log ,有报错:
ERROR - file: /root/fastdfs-nginx-module/src/common.c, line: 561, logic file: M00/00/00/wKgkRU5wVgCfKe54AB-K5_ZWmJ4421.mp3 not exists

不知哪里配错了,请指教,谢谢

论坛徽章:
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
2 [报告]
发表于 2011-09-14 17:54 |只看该作者
回复 1# tortoni_gsta

使用的扩展模块版本是多少?
v1.06存在bug,后面的版本已经修复。
建议使用最新的版本v1.08。

论坛徽章:
0
3 [报告]
发表于 2011-09-14 18:04 |只看该作者
回复 2# happy_fish100


  版本是1.08的

论坛徽章:
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
4 [报告]
发表于 2011-09-14 18:30 |只看该作者
回复 3# tortoni_gsta

请检查:
1. 192.168.36.69是否是storage server IP地址?
2. mod_fastdfs.conf中的store_path0是否正确配置?

论坛徽章:
0
5 [报告]
发表于 2011-09-15 10:33 |只看该作者
回复 4# happy_fish100


  1. ip地址确定是对的,将tracker和storage都部署在192.168.36.69这台机器上
  2. mod_fastdfs.conf和storage.conf的store_path0填的一样,应该是正确
   store_path0=/home/fastdfs/fastdfs_storage

  刚才改代码,在trunck_shared.c的trunk_file_stat_func函数里输出一些调试信息
        if (filename_len != FDFS_TRUNK_FILENAME_LENGTH) //not trunk file
        {
                snprintf(full_filename, sizeof(full_filename), "%s/data/%s", \
                        g_fdfs_store_paths[store_path_index], true_filename);
                logInfo("filename_len!=%d, full_filename=%s", FDFS_TRUNK_FILENAME_LENGTH, full_filename);
                int statfuncRes = statfunc(full_filename, pStat);
                logInfo("statfuncRes=%d", statfuncRes);
                if (statfuncRes == 0)
                {
                        return 0;
                }
                else
                {
                        return errno != 0 ? errno : ENOENT;
                }
        }

  在nginx的error.log里面能看到full_filename文件名是正确的,在硬盘上存在该文件
[2011-09-15 10:34:05] INFO - filename_len!=56, full_filename=/home/fastdfs/fastdfs_storage/data/00/00/wKgkRU5wVgCfKe54AB-K5_ZWmJ4421.mp3
[2011-09-15 10:34:05] INFO - statfuncRes=-1
[2011-09-15 10:34:05] INFO - source ip addr: 192.168.36.69
[2011-09-15 10:34:05] INFO - create_timestamp: 1315984896

根据full_filename能找到该文件:
[root@edbsvr69 logs]# ls -lt /home/fastdfs/fastdfs_storage/data/00/00/wKgkRU5wVgCfKe54AB-K5_ZWmJ4421.mp3
-rw-r--r-- 1 root root 2067175 09-14 15:21 /home/fastdfs/fastdfs_storage/data/00/00/wKgkRU5wVgCfKe54AB-K5_ZWmJ4421.mp3

论坛徽章:
0
6 [报告]
发表于 2011-09-15 12:12 |只看该作者
做了个简单测试,写个test.c,main的内容:
    const char * filename = "/home/fastdfs/fastdfs_storage/data/00/00/wKgkRU5wVgCfKe54AB-K5_ZWmJ4421.mp3";
    struct stat file_stat;
    int result = stat(filename, &file_stat);
    printf("res=%d", result);

执行返回res=0

把这段代码放到trunk_shared.c里面trunk_file_stat_func函数里面,返回res=-1

是环境配置的问题么?

论坛徽章:
0
7 [报告]
发表于 2011-09-15 12:24 |只看该作者
知道原因了,是读取文件权限问题
修改nginx.conf文件,将启worker process的用户改为root
#user  nobody;
user root;

现在下载文件ok了

论坛徽章:
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
8 [报告]
发表于 2011-09-15 12:49 |只看该作者
回复 7# tortoni_gsta

好吧。
我刚在代码中定位了一下,正准备再次解答一把呢。
看来不用费神了,哈哈。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP