对于互联网应用,FastDFS的标准使用姿势:通过FastDFS API进行文件上传等更新操作,storage server上通过FastDFS nginx扩展模块使用HTTP方式下载文件。FastDFS的文件名由storage server通过算法生成,生成的文件名中包含时间戳、文件大小、文件内容CRC32校验码、随机数等,因此FastDFS生成的文件名是完全离散的,客户端无法野蛮遍历或穷举。由此可见,storage server上部署的HTTP服务完全可以直接暴露到公网,提供给客户端浏览器访问。
安全起见,强烈建议FastDFS集群部署在内网,不要对外暴露tracker(22122端口) 和 storage(23000端口)服务。在跨机房访问等场景下,需要暴露FastDFS集群到公网,请做好安全设置和防护。首先推荐采用防火墙,对22122和23000端口访问采用白名单。其次可以使用FastDFS内置基于IP地址的白名单,在tracker.conf 和 storage.conf中配置allow_hosts。
allow_hosts 配置格式说明如下:
1. allow_hosts 可以在配置文件中出现多次,通常设置允许访问的IP地址,也可以设置主机名(域名)。每行allow_hosts设置的IP地址或主机都会被纳入白名单;
2. * (必须是单独的一个星号)表示允许所有来源IP,例如:
allow_hosts = *
3. 可以使用CIDR格式的IP段,比如:192.168.5.64/26;
4. 支持用方括号括起来的范围设置,一个配置项中只能出现一次范围设置,例如:10.0.1.[0-254] 或者 host[01-08,20-25].domain.com。
摘录tracker.conf (或 storage.conf)中的一段配置示例如下:
allow_hosts = 10.0.1.[1-15,20]
allow_hosts = host[01-08,20-25].domain.com
allow_hosts = 192.168.5.64/26
FastDFS出于简洁和高效考虑,没有存储文件索引等元数据,也不会对文件提供权限设置和访问控制等功能,相关功能需要应用(调用方)自己实现。
本文分享自微信公众号 - FastDFS分享与交流(fastdfs100)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。