首先安装openresty,
449 tar -zxvf ngx_openresty-1.0.9.10.tar.gz
451 cd ngx_openresty-1.0.9.10
456 ./configure --prefix=/usr/local/nginx_openresty --with-luajit
make
make install
然后在nginx.conf 里配置如下location,但是要记得把user root; 这个打开,在nginx.conf的第一行,要不是裁不了图片的。
location /images/ {
set $image_root /home/tomcat/eisp-files;
set $file "$image_root$uri";
if (!-f $file) {
rewrite_by_lua '
local index = string.find(ngx.var.uri, "([0-9]+)x([0-9]+)");
local originalUri = string.sub(ngx.var.uri, 0, index-2);
local area = string.sub(ngx.var.uri, index);
index = string.find(area, "([.])");
area = string.sub(area, 0, index-1);
local image_sizes = {"80x80", "800x600", "40x40"};
function table.contains(table, element)
for _, value in pairs(table) do
if value == element then
return true
end
end
return false
end
if table.contains(image_sizes, area) then
local command = "gm convert " .. ngx.var.image_root .. originalUri .. " -thumbnail " .. area .. " -background gray -gravity center -extent " .. area .. " " .. ngx.var.file;
os.execute(command);
else
ngx.exit(404);
end;
';
}
alias /home/tomcat/eisp-files/images/;
expires 7d;
}
访问 http://XXXX:8099/images/Img4911200_n.jpg.80x80.jpg
又做了的大视野:
url:http://XXXX:8099/pic/new/f/60/13/Img4911360_f.jpg.800x600.jpg
location /pic/ {
set $image_root /data/2008image;
set $file "/home$uri";
if (!-f $file) {
rewrite_by_lua '
local index = string.find(ngx.var.uri, "([0-9]+)x([0-9]+)");
local originalUri = string.sub(ngx.var.uri, 0, index-2);
local area = string.sub(ngx.var.uri, index);
index = string.find(area, "([.])");
area = string.sub(area, 0, index-1);
local t = 0;
local i = 0;
while true do
i = string.find(ngx.var.file, "/", i+1);
if i == nil then break end;
t = i;
end
local ss = string.sub(ngx.var.file,0,t);
local tmp = "mkdir -p " .. ss;
os.execute(tmp);
local image_sizes = {"80x80", "800x600", "40x40"};
function table.contains(table, element)
for _, value in pairs(table) do
if value == element then
return true
end
end
return false
end
if table.contains(image_sizes, area) then
local command = "gm convert " .. ngx.var.image_root .. originalUri .. " -thumbnail " .. area .. " -background gray -gravity center -extent " .. area .. " " .. ngx.var.file;
os.execute(command);
else
ngx.exit(404);
end;
';
}
alias /home/pic/;
expires 7d;
}