安装openresty(自动官网下载安装)
-
安装GraphicsMagick
sudo apt-get install GraphicsMagick
-
配置openresty下的nginx配置文件(/usr/local/openresty/nginx/config/nginx.conf)
worker_processes1;
# 日志级别调试时可设为notice,生产环境请设为error
error_log /usr/local/openresty/nginx/logs/error.log notice;
events
{
use epoll;
worker_connections51200;
}
http
{
lua_package_path'/usr/local/openresty/nginx/lua/?.lua;;';
server{
listen 8055;
server_name localhost;
root /usr/local/nginx/html;
#/thumbnail目录下的图片请求不经过缩略图模块
location^~/imgcache/{
}
#对类似_100x100.gif/jpg/png/jpeg进行缩略图处理
location~*_([0-9]+)x([0-9]+)\.(gif|jpg|png|jpeg)${ #匹配文件名规则
set$image_root/usr/local/nginx/html; #图片目录
set$thumbnail_root/usr/local/nginx/html/imgcache; #缩略图存放目录
#如果缩略图文件存在,直接返回
set$file $thumbnail_root$uri;
if(-f $file){
rewrite^/(.*)$/imgcache/$1 last;
}
#如果缩略图文件不存在,则应用缩略图模块处理
if(!-f $file){
rewrite_by_lua_file lua/thumbnail.lua;
}
}
}
} 配置lua配置文件(/usr/local/openresty/nginx/lua/config.lua)
-
-- nginx thumbnail module
-- last update : 2014/8/21
-- version : 0.4.1
module(...,package.seeall)
--[[
enabled_log:是否打开日志
lua_log_level:日志记录级别
gm_path:graphicsmagick安装目录
img_background_color:填充背景色
enabled_default_img:是否显示默认图片
default_img_uri:默认图片链接
default_uri_reg:缩略图正则匹配模式,可自定义
_[0-9]+x[0-9]对应:001_100x100.jpg
_[0-9]+x[0-9]+[.jpg|.png|.gif]+ 对应:001.jpg_100x100.jpg
]]
enabled_log = true
lua_log_level = ngx.NOTICE
gm_path = '/usr/bin/gm'
img_background_color = 'white'
enabled_default_img = true
default_img_uri = '/default/notfound.jpg'
default_uri_reg = '_[0-9]+x[0-9]+[.jpg|.png|.gif]+'
quality= 80 -- 质量
direction = 'southeast' --位置
warter_dissolve= 50 --百分比
warter_img_uri = '/usr/local/nginx/html/default/water.png'
--[[
配置项,对目录、缩略图尺寸、裁剪类型进行配置,匹配后才进行缩略图处理
1.sizes={'350x350'} 填充后保证等比缩图
2.sizes={'300x300_'}等比缩放
3.sizes={'50x50^'}裁剪等比缩放 (缺点:裁剪了图片的一部分)
dir="/" 对应根目录,请放在default之前
dir="default" 对应默认图片尺寸,当原图不存在时,请求该尺寸会以默认图片生成缩略图
]]
cfg = {
{
dir = '/',
sizes = {'50x50^','100x100^','250x250^','300x300^','350x350^','80x80^','120x120^'},
},
{dir = 'default',
sizes = {'50x50^','100x100^','250x250^','300x300^','350x350^','80x80^'},
}
} lua脚本(/usr/local/openresty/nginx/lua/thumbnail.lua
-
访问测试路径:http://aidemofang.com/test/3.jpg_300x300.jpg
重新加载nginx命令 nginx -s reload
-
参考:
http://www.hopesoft.org/blog/?p=1188
http://fromwiz.com/share/s/1hfxw32Jy17v2YBkmI2eNjeH30ZPIb1ajAQd2rq5h51svjuD
-