Nginx + Lua + GraphicsMagick 实现切图服务
2014-03-14 21:02
447 查看
转载:http://houxiyang.com/archives/112/
面临的问题
网站需求变更,需要更多不同尺寸的缩略图
有些图片的缩略图很少使用到,但还是存在了硬盘上,造成空间浪费
解决方法
Nginx搭配Lua模块,如果访问的图片不存在,则调用GraphicsMagick的命令行实时生成指定尺寸的图片。
-集成了Lua模块的Nginx项目OpenResty
-GraphicsMagick的安装和使用
-具体使用方法
原始图片地址:
/images/f47aa98b47b4b7bd.jpg
自定义图片尺寸:
/images/f47aa98b47b4b7bd_40x40.jpg
配置文件中可以写成这样
这样就能简单的生成图片指定尺寸的缩略图了。
摘自:http://blog.csdn.net/vboy1010/article/details/7868645
安装lua模块
1、Luajit2.0(推荐)或者 Lua5.1(Lua5.2暂不支持)
[plain] view
plaincopyprint?
wget http://luajit.org/download/LuaJIT-2.0.0-beta9.tar.gz
tar zxvf LuaJIT-2.0.0-beta9.tar.gz
cd LuaJIT-2.0.0-beta9
make
sudo make install PREFIX=/usr/local/luajit
Note: to avoid overwriting a previous version,
the beta test releases only install the LuaJIT executable under the versioned name (i.e. luajit-2.0.0-beta10).
You probably want to create a symlink for convenience, with a command like this:
sudo ln -sf luajit-2.0.0-beta9 /usr/local/bin/luajit (加上这句命令)
下面需要配置一下 luajit 或 lua 的环境变量(Nginx编译时需要):
[plain] view
plaincopyprint?
-- luajit --
# tell nginx's build system where to find LuaJIT:
export LUAJIT_LIB=/path/to/luajit/lib
export LUAJIT_INC=/path/to/luajit/include/luajit-2.0
-- lua --
# or tell where to find Lua if using Lua instead:
export LUA_LIB=/path/to/lua/lib
export LUA_INC=/path/to/lua/include
我的测试环境里,配置如下:
[plain] view
plaincopyprint?
export LUAJIT_LIB=/usr/local/luajit/lib
export LUAJIT_INC=/usr/local/luajit/include/luajit-2.0
面临的问题
网站需求变更,需要更多不同尺寸的缩略图
有些图片的缩略图很少使用到,但还是存在了硬盘上,造成空间浪费
解决方法
Nginx搭配Lua模块,如果访问的图片不存在,则调用GraphicsMagick的命令行实时生成指定尺寸的图片。
-集成了Lua模块的Nginx项目OpenResty
-GraphicsMagick的安装和使用
-具体使用方法
原始图片地址:
/images/f47aa98b47b4b7bd.jpg
自定义图片尺寸:
/images/f47aa98b47b4b7bd_40x40.jpg
配置文件中可以写成这样
location ~ '/images/([0-9a-z]+)_([0-9]+)x([0-9]+).jpg$' { root /home/images; set $image_root = '/home/images'; set $fileName = ngx.arg[1]; set $width = ngx.arg[2]; set $height = ngx.arg[3]; set $origin = $image_root/$fileName.jpg set $file = $image_root/$fileName_$widthx$height.jpg if (!-f $file) { rewrite_by_lua ' local command = "gm convert "..ngx.var.origin.." -thumbnail "..ngx.var.width.."x" ..ngx.var.height.." "..ngx.var.file; os.execute(command); '; }
这样就能简单的生成图片指定尺寸的缩略图了。
摘自:http://blog.csdn.net/vboy1010/article/details/7868645
安装lua模块
1、Luajit2.0(推荐)或者 Lua5.1(Lua5.2暂不支持)
[plain] view
plaincopyprint?
wget http://luajit.org/download/LuaJIT-2.0.0-beta9.tar.gz
tar zxvf LuaJIT-2.0.0-beta9.tar.gz
cd LuaJIT-2.0.0-beta9
make
sudo make install PREFIX=/usr/local/luajit
Note: to avoid overwriting a previous version,
the beta test releases only install the LuaJIT executable under the versioned name (i.e. luajit-2.0.0-beta10).
You probably want to create a symlink for convenience, with a command like this:
sudo ln -sf luajit-2.0.0-beta9 /usr/local/bin/luajit (加上这句命令)
下面需要配置一下 luajit 或 lua 的环境变量(Nginx编译时需要):
[plain] view
plaincopyprint?
-- luajit --
# tell nginx's build system where to find LuaJIT:
export LUAJIT_LIB=/path/to/luajit/lib
export LUAJIT_INC=/path/to/luajit/include/luajit-2.0
-- lua --
# or tell where to find Lua if using Lua instead:
export LUA_LIB=/path/to/lua/lib
export LUA_INC=/path/to/lua/include
我的测试环境里,配置如下:
[plain] view
plaincopyprint?
export LUAJIT_LIB=/usr/local/luajit/lib
export LUAJIT_INC=/usr/local/luajit/include/luajit-2.0
相关文章推荐
- OpenResty(Nginx)+Lua+GraphicsMagick实现图片截图与缓存 二
- OpenResty(Nginx)+Lua+GraphicsMagick实现缩略图功能
- OpenResty(Nginx)+Lua+GraphicsMagick实现缩略图功能
- 使用nginx+Lua+GraphicsMagick实现图片自动裁剪 推荐
- OpenResty(Nginx)+Lua+GraphicsMagick实现缩略图功能 | 琥珀志
- OpenResty(Nginx)+Lua+GraphicsMagick实现缩略图功能
- OpenResty(Nginx)+Lua+GraphicsMagick实现缩略图功能
- nginx+lua+GraphicsMagick实现图片自动缩放功能(强烈推荐)
- OpenResty(Nginx)+Lua+GraphicsMagick实现缩略图功能
- OpenResty(Nginx)+Lua+GraphicsMagick实现缩略图功能
- Nginx+Lua+GraphicsMagick实现动态生成指定尺寸的图片
- ftp+nginx+lua_Nginx+GraphicsMagick来实现目录浏览、实时缩略图
- OpenResty(Nginx)+Lua+GraphicsMagick实现图片截图与缓存 二
- CentOS6.5环境使用keepalived实现nginx服务的高可用性及配置详解
- Java+Nginx实现POP、IMAP、SMTP邮箱代理服务
- 用Nginx+Lua实现高性能、高可靠、安全的登陆验证
- nginx利用lua实现nginx反向代理proxy_store缓存文件自删除
- lua实现跨域请求(Nginx)
- FASTDFS(六)nginx+lua+GraphicsMagick 图片自动缩放
- nginx+lua实现IP黑白名单机制