FastDFS整合Nginx

FastDFS提供了文件的备份,插入,下载的负载均衡等功能。但是作为图片服务器,十分需要HTTP的服务,进行图片的显示。这时就需要整合HTTP服务器。
FastDFS自带了HTTP服务,但是作者余庆大师估计是测试时候自己用的,所以他本人也并不建议使用自带的HTTP模块,而是与其他HTTP Server整合。FastDFS提供了Nginx的模块,今天重点整合Nginx。


一 Nginx的FastDFS模块访问方式
Nginx服务器是安装在Storeage服务器上的,也就是说,一般情况下它只提供对本Storeage服务器上的资源提供服务。只有在本机并没有需要获取的资源的情况下,才会进行特殊的处理。
当同组内其他Storeage新上传的图片本机并没有及时同步的时候,Nginx会根据url寻找上传的Storeage源服务器,进行redirect或者proxy两种方式之一的转发。redirect和proxy,大家大概能猜到,不累述了。
在这里Nginx因为只是访问Storeage的本地资源,所以并没有充分的利用tracker进行读取信息的负载均衡,所以如果需要负载均衡的处理,还需要自己进行。不过这样也合理。我们就可以按组映射域名进行图片的分别处理。

二 安装Nginx模块
在FastDFS安装成功的基础上,还需要下载Nginx和FastDFS的Nginx模块。
Nginx支持模块下载:http://code.google.com/p/fastdfs/

在每一个Storeage上都安装nginx和FastDFS支持模块。
在安装FastDFS的时候讲支持模块配置进去
./configure --prefix=/usr/local/nginx --add-module=/root/fastdfs-nginx-module-read-only/src
千万注意,这个路径最后不要有“/”,只是停留再src即可。否则运行时候有问题。。
安装Nginx请参考其他文档

如果已经安装过Nginx的,那就重新编译安装一次了。

三 配置
拷贝FastDFS支持Nginx模块的配置文件,到/etc/fdfs/下面
cp $path/fastdfs-nginx-module-read-only/src/mod_fastdfs.conf  /etc/fdfs/
修改配置文件中的几个重要参数 看英文就知道了。。不累述。。参考FastDFS的配置,这些内容就很清楚了。

Nginx配置
增加
location /M00 {
root storeage_path/data;
ngx_fastdfs_module;
}
同时需要建软连接
ln -s storeage_path/data  storeage_path/data/M00

这里的M00是FastDFS在生成文件名时的提供的。FastDFS可以设置多块硬盘的配置,所以这个M00主要用于标识具体是哪个存储路径。默认只有一个,所以建立一个M00的软连接即可。当然,以上路径可以根据需要情况自行配置。

如此。启动nginx,根据文件名就可以访问到我们上传的各种资源了。

猜你喜欢

转载自lection-yu.iteye.com/blog/1536870