利用Nginx和MogileFS架构图片服务器 在之前的文章中以介绍如何搭建MogileFS;这里就不提了。
一,Nginx安装
在标准的nginx安装中增加支持MogileFS的模块,
vkholodkov-nginx-mogilefs-module-249f2b0
Nginx的配置
mogilefs_pass
[<key>] {<fetch block>}
使用范围:server,location,limit_except
向MogileFS
tracker查找URI中指定的关键字,关键字能包含任何变量。如果省略了关键字,MogileFS
tracker会把URI中的某个部分当做一个关键字
例如:
location /download/ {
mogilefs_pass {
[……]
}
}
在这个配置例子中,如果请求的URI是/download/example.jpg,MogileFS
会以example.jpg作为关键字去请求资源。
在pmogilefs_pass中的配置模块里面,能定义如何从storage
nod取该文件。例如:
mogilefs_pass {
proxy_pass $mogilefs_path;
proxy_hide_header Content-Type;
proxy_buffering off;
}
$mogilefs_path变量包含了存储在storage
节点中的文件的URL。当proxy中的模块会封装好一个隐藏的名字为mogilefs_fetch_xxxxxx供MogileFS
tracker成功相应后使用。例如
mogilefs_pass {
proxy_pass $mogilefs_path;
proxy_hide_header Content-Type;
proxy_buffering off;
}
mogilefs_methods <[[method 1] method 2 ...
]>
定义那种方法操作MogileFS。GET从MogileFS获取相应资源,PUT新建或替代资源,DELETE从MogileFS中删除资源。
mogilefs_domain
<domain> 定义使用哪个domain对MogileFS进行查询。
mogilefs_class <class0> [
<class1> [ ... ] ] 定义使用哪个class进行操作。
mogilefs_tracker
<IP|IP:port|upstream> 定义tracker的地址
mogilefs_connect_timeout
<time> 连接tracker超时的时间;不能大于75秒。
mogilefs_send_timeout <time>
定义传输数据到MogileFS
tracker的超时时间,如果tracker超过这个时间没有接收到数据,nginx就会关闭该链接。
mogilefs_read_timeout
<time>
更上面的属性的数据传输方向刚好相反。
(参考网址:http://www.grid.net.ru/nginx/mogilefs.en.html
)
以下是我线上图片服务器nginx的其中一段配置:
server {
listen
7070;
expires 1M;
location ~ ^/images/upload/upc/face/ {
rewrite /(.*) $1 break;
mogilefs_tracker 192.168.237.203:6001;
mogilefs_domain imgdomain;
mogilefs_methods get;
mogilefs_pass {
proxy_pass $mogilefs_path;
proxy_hide_header Content-Type;
proxy_buffering off;
}
error_page 404 = /DEFAULT$request_uri;
}
}
这个过过程中error_page 404
必须这样做配置,否则获取不到404状态码。
文件: vkholodkov-nginx-mogilefs-module-249f2b0.tar.gz
大小: 13KB 下载: 下载
该文的原文档可以在http://blog.chinaunix.net/u3/102731/showart_2262702.html取到。
Nginx与MogileFS架构图片服务器实例,布布扣,bubuko.com
原文地址:http://www.cnblogs.com/yes123/p/3769468.html