首页 > 代码库 > Nginx与MogileFS架构图片服务器实例

Nginx与MogileFS架构图片服务器实例

利用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图片服务器配置简单示例
  • Nginx独立图片服务器搭建教程
  • nginx高速缓存图片服务器配置教程
  • nginx图片缓存至本地浏览器缓存 nginx中gzip压缩
  • nginx图片缓存服务器配置实例
  • Nginx Proxy 代理配置图片缓存的实例参考
  • nginx设置css/js/jpg/png等图片或静态文件的浏览器缓存时间
  • Nginx Proxy代理和图片缓存配置