1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
| nginx
server {
listen 8080;
server_name 172.1.1.1;
access_log /var/log/tengine/test_access.log;
error_log /var/log/tengine/test_error.log;
location /lua {
default_type 'text/plain';
content_by_lua 'ngx.say("hello,lua")';
}
location ~* /group1/M00/ {
ngx_fastdfs_module;
set $needCreateImg 0;
if ( !-f $request_filename) {
set $needCreateImg "${needCreateImg}1";
}
if ($uri ~* "/group1/M00/(\d+)/(\d+)/([A-Za-z0-9_-]+).(gif|jpg|jpeg|png).(\d+x\d+).(gif|jpg|jpeg|png)") {
set $needCreateImg "${needCreateImg}2";
set $conUri "/$1/$2/$3.$4.$5.$6";
}
if ($needCreateImg = "012") {
set $image_root "/data/fastdfs/data";
set $file "$image_root$conUri";
rewrite_by_lua '
local index = string.find(ngx.var.conUri, "([0-9]+)x([0-9]+)");
local originalUri = string.sub(ngx.var.conUri, 0, index-2);
local area = string.sub(ngx.var.conUri, index);
index = string.find(area, "([.])");
area = string.sub(area, 0, index-1);
function table.contains(table, element)
for _, value in pairs(table) do
if value == element then
return true
end
end
return false
end
local c = "/usr/local/graphicsmagick/bin/gm convert " .. ngx.var.image_root .. originalUri .. " -thumbnail " .. area .. " - ";
local f = assert(io.popen(c, "r"))
local s = assert(f:read("*a"))
f:close()
ngx.say(s) ';
}
alias /data/fastdfs/data/;
}
}
|