安装详解:http://blog.csdn.net/clevercode/article/details/52267080。
3.1 原理解析:http://blog.csdn.net/clevercode/article/details/52276077。
3.2 FastDFS扩展模块要点:
1 使用扩展模块来解决文件同步延迟问题
2 在每台storage server上部署web server,直接对外提供HTTP服务
3 tracker server上不需要部署web server,开启http服务。
4 如果请求文件在当前storage上不存在,通过文件ID反解出源storage,直接请求源storage
5 目前已提供apache和nginx扩展模块 FastDFS扩展模块不依赖于FastDFS server,可以独立存在!
3.3 模块工作机制:
1 对请求URL中的文件名进行反解,得到文件创建时间、文件大小和源storage server IP地址
2 如果文件在本地存在,直接返回文件内容;否则转3
3 文件在本地不存在的情况处理:
1)如果 (当前时间 - 文件创建时间) > 文件同步延迟阀值(如一天) 或者 源storage server IP地址在本机IP中(即当前文件上传到的源storage server为本机),则返回404 NOT FOUND
2)如果配置为redirect模式,直接重定向到源storage server IP对应的URL;否则为proxy模式,调用FastDFS client API从源storage server IP获取该文件并返回给客户端
4 nginx的fdfs扩展模块后,就使用nginx的负载均衡,向tracker server获取两个参数而已,这两个参数是:
storage_sync_file_max_delay:文件同步的最大延迟,缺省为1天
storage_sync_file_max_time:同步单个文件需要的最大时间,缺省为5分钟。
启动
# /usr/local/nginx/sbin/nginx
启动
# /usr/local/nginx/sbin/nginx
6 测试
配置host(C:\Windows\System32\drivers\etc\hosts)
192.168.101.132 img1.mydomain.com
192.168.101.133 img2.mydomain.com
6.1 132与133都开启storage
a)上传w8.png。可以看到被轮询上传到了192.168.101.132storage中。
# /usr/local/bin/fdfs_test /etc/fdfs/client.conf upload w8.png
b)访问img1.mydomain.com,本地命中图片。
http://img1.mydomain.com/group1/M00/00/00/wKhlhFe7DCeAcOvYAAaxqYLWRQk392.png
c)访问img2.mydomain.com,本地命中图片。
http://img2.mydomain.com/group1/M00/00/00/wKhlhFe7DCeAcOvYAAaxqYLWRQk392.png
6.2 停止132storage,只开启133storage
a)停止192.168.101.132storage
# /usr/local/bin/stop.sh /usr/local/bin/fdfs_storaged /etc/fdfs/storage.conf
b)上传w9.png图片。图片只能被存储到192.168.101.133的storage中
# /usr/local/bin/fdfs_test /etc/fdfs/client.conf upload w9.png
c)访问img2.mydomain.com,本地命中图片。
http://img2.mydomain.com/group1/M00/00/00/wKhlhVe7DuSALxjTAAKHqXsWj4A287.png
d)访问img1.mydomain.com,本地132没有,解析源ip到133服务器去取。
http://img1.mydomain.com/group1/M00/00/00/wKhlhVe7DuSALxjTAAKHqXsWj4A287.png