nginx 的 mogilefs 模块

nginx 有一个第三方的 mogilefs 模块,实现了一个 mogilefs 的客户端,可以用 webdav 的方式访问。

文档和下载链接见:http://www.grid.net.ru/nginx/mogilefs.en.html (需翻墙)

用上这个模块,再结合 rewrite,只要 key 在 url 里有,就能直接代理到后端的 mogilefs。

server {
    server_name  download.sample.com;
    charset utf-8;
    access_log  logs/download.access.log  main;
    root   /srv/www;

    mogilefs_tracker 192.168.1.100:6001;
    mogilefs_domain domain_name;
    mogilefs_class class_name;
    mogilefs_methods GET;

    location ~ ^/files/(.+)  {
        mogilefs_pass $1 {
            proxy_pass $mogilefs_path;
            proxy_hide_header Content-Type;
        }
    }
    include    extra/mime.types;
}

借用 if 先把 key 放到一变量里,然后就可以传递给后端了。

在 mogilefs_pass 里也可以配置缓存。

写操作配好后,也可以直接用 webdav 方式操作,不用手动向 tracker 请求存储节点,存进去,再通知同步了。

经实验,这个模块表现并不稳定,建议目前不要在生产环境使用。