假设这个“普通”的图片服务器上所有文件都存在本机(或者NFS)
可以利用一些nginx的特征来解决。(甚至都不需要用LUA :P)
我贴一个ngx上简单缓存服务应用的例子,看看有没有帮助
#匹配 xxx.com/pic/123456abcd.gif 的hash
# 图片存储在 /data/piccache/中
set $pic_root /data/piccache;
location ~ /pic/(\w+)\.(jpg|png|gif) {
set $id $$1;
set $ext $2;
if ( -e $pic_root/$id.ext) {
root $pic_root;
rewrite ^ /$id.$ext last;
}
}
裸写的,可能有bug,见谅
在 2012年6月25日星期一UTC+8下午12时53分21秒,agentzh写道:
Hello!2012/6/25 wangjingbomail <wangjingbomail@163.com>:
> 想问一下,用nginx lua做一个普通的图片服务器,满足以下几个功能
> 1.能接受http请求传过来的图片存储,返回一个id;
> 2.给定一个图片id,返回一个图片
>
这是很简单的需求,可以结合 nginx 的静态文件服务模块,如果你的图片是存储在文件系统中的话。
> 可行性怎样?然后效率怎样?
这个主要取决于你的存储方案和 ngx_lua 与它之间具体的通信方案,并不取决于 ngx_lua 本身。
> 另外,现有的开源的图片服务器(希望能简单一点的),开源的能推荐一两个吗?
>
报歉,我并清楚。我抄送给了 openresty 邮件组:https://groups.google.com/group/openresty/
看看其他的开发者和用户有没有什么好的建议和经验可以分享 :) 也欢迎你加入这个列表。
Regards,
-agentzh