瞎掰的,请大神提出意见
location ~* ([0-9a-z\/]+)/([0-9a-z]+).(a|gif)_([0-9]+)x([0-9]+)(.*)$ {
#default_type text/html;
root /data/thumbnail/;
set $image_root /data/filesystem;
set $thumbnail_root /data/thumbnail/;
set $ways $1;
set $fileName $2.$3;
set $width $4;
set $height $5;
set $origin $image_root$ways/$fileName;
set $file $thumbnail_root$uri;
set $dir $thumbnail_root$ways;
set $ext $6;
if (!-f $file) {
rewrite_by_lua '
local command1 = "mkdir -p " .. ngx.var.dir
local quality = string.sub(ngx.var.ext,2,3)
local ext = string.sub(ngx.var.ext,-3)
if quality ~= "gi" and quality ~= "jp" and quality ~= "00" and ext == "gif" and quality ~= "JP" and quality ~= "GI" and ext == "GIF" then
local command2 = "/graphicsmagick/bin/gm convert -quality " .. quality .. " " .. ngx.var.origin .. "[0]" .. " -thumbnail " .. ngx.var.width .. "x" .. ngx.var.height .. " " .. ngx.var.file
os.execute(command1)
os.execute(command2)
elseif quality == "00" then
local command2 = "/graphicsmagick/bin/gm convert " .. ngx.var.origin .. " -thumbnail " .. ngx.var.width .. "x" .. ngx.var.height .. " " .. ngx.var.file
os.execute(command1)
os.execute(command2)
elseif ext == "gif" or ext == "GIF" then
local command2 = "/graphicsmagick/bin/gm convert " .. ngx.var.origin .. "[0]" .. " -thumbnail " .. ngx.var.width .. "x" .. ngx.var.height .. " " .. ngx.var.file
os.execute(command1)
os.execute(command2)
end
';
}
}mmand2)
如http://goodid.com/1.gif_300x300_00.gif
压缩比例为00就是动态gif,其他压缩比例或者不加压缩比例为静态压缩图