fastdfs二三事

记录会比较零碎,是一些学习经验吧

1.之前一直对fastdfs的nginx模块不够了解,稍微思考调研了下,解决了以前的疑惑

1
2
3
4
location /group1/M00{
alias /data/fastdfs/data;
ngx_fastdfs_module;
}

然后浏览器就可以根据ip/M00/00/00/aaaaaaaaaaaaaaa.jpg类似这样的连接去获取到fastdfs上的文件了

这个配置文件一直是知其然不知其所以然

搜了下nginx的资料

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
location = / {
# 只匹配 / 查询。
[ configuration A ]
}

location / {
# 匹配任何查询,因为所有请求都已 / 开头。但是正则表达式规则和长的块规则将被优先和查询匹配。
[ configuration B ]
}

location ^~ /images/ {
# 匹配任何已 /images/ 开头的任何查询并且停止搜索。任何正则表达式将不会被测试。
[ configuration C ]
}

location ~* \.(gif|jpg|jpeg)$ {
# 匹配任何已 gif、jpg 或 jpeg 结尾的请求。然而所有 /images/ 目录的请求将使用 Configuration C。
[ configuration D ]
}

而后参考了nginx root&alias文件路径配置这篇文章

ip/group1/M00/00/00/aaaaaaaaaaaaaaaa.jpg在alias的配置下会解析为ip/data/fastdfs/data/00/00/aaaaaaaaaaaaaaaa.jpg这样的路径

也就是服务器上文件实际的路径

如果使用root的配置,会解析成ip/group1/M00/data/fastdfs/data/00/00/aaaaaaaaaaaaaaaa.jpg,显然服务器上没有这个路径

这个解析出来的路径会传给fastdfs_ngx_module,大致看了下代码,也就是传输文件之类的。