免费注册 查看新帖 |

Chinaunix

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

[FastDFS] 线上服务器,原图请求为空。详情请进 [复制链接]

论坛徽章:
2
IT运维版块每日发帖之星
日期:2016-04-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-26 06:20:00
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2016-05-24 17:56 |只看该作者 |倒序浏览
内网用浏览器测试是好使的。。。就使这一段代码

#原图的匹配位置
        location ~* /group[1-2]/M00 {
                root  /data/fdfs/data;

                ngx_fastdfs_module;
                echo 我进来了;
        }

浏览器请求,会得到一个白色的小框,空白的
curl  ***localhost/group2/M00/00/00/ChlaGFdEGNeAfXN0AA4Or239mgA888.jpg
它竟然打印了 “我进来了” 这句话。
这是否以为着 ngx_fastdfs_module 完全被无视了,没有起作用??

------------------------------------------------------------------------------------------------
iptables 设置如下。。。会不会和哪里有关呢》?

*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
#-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT

-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 8080 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22122 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 23000 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 11211 -j ACCEPT
#-A INPUT -j REJECT --reject-with icmp-host-prohibited
#-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT

------------------------------------------------------------------------------------------------
storage.log 和 tracker.log 就不上了,没有任何错误,只有一些info内容。。。
求助各位,折腾了好久了~~

论坛徽章:
2
IT运维版块每日发帖之星
日期:2016-04-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-26 06:20:00
2 [报告]
发表于 2016-05-25 17:33 |只看该作者
好像可以排除防火墙以及权限的问题。。
那么有一个困扰许久的问题,像各位请教以下:
就是
location ~* /group[1-2]/M00 {
                root  /data/fdfs/data;

                ngx_fastdfs_module;
                echo 我进来了;
        }

这一段,按我的理解,root 的作用会把上面的url 拼接在 /data/fdfs/data 后面,那就变成了 /data/fdfs/data/group[1-2]/M00***  (这里的group随便取一个)
可是这张图片在server上的路径应该是 /data/fdfs/data/M00***    也就是去掉group 那一块。
但样例都是这么写的。。之前我还以为ngx_fastdfs_module 会对这个做处理,所以group 这块就没想太多。谁知 这个module 根本就不管这个。。
于是我又确认了一下线下的server,确定就是这么写的,而nginx 也确实能找到那张图!但是在线上就不可以,然后我就凌乱了。。
我觉得肯定是哪里理解错了,希望大神帮忙指点迷津!!
包括 root 的作用,以及之后 nginx 会执行什么操作。。。
谢谢~

论坛徽章:
2
IT运维版块每日发帖之星
日期:2016-04-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-26 06:20:00
3 [报告]
发表于 2016-05-26 10:48 |只看该作者
这个太神奇了!!我把 “echo 我进来了" 那句话注释掉,或者删掉,就没问题了!!

另外收回一句话,刚去做了一下实验,发现ngx_fastdfs_module 这个模块就是用来处理 group* 这个前缀的,余大的文档意思是说,它会在资源同步期间,保证请求落到有资源的storage服务器上,其实对group* 也做了手脚,然后拼在root 后面。这样解释就通了。
并不能看懂源码,所以只能靠尝试。。。
那这个问题的关键为何是 echo 这一句话呢?
echo 是nginx原生模块命令,执行阶段是 content_phase,我想这二者的执行方式可能产生重叠了,如果有echo 命令,这个模块会“失效”。不知道是不是这样,可以请余大解释一下吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP