第一个测试,关于http_perl_module。之前写过一篇关于nginx忽略大小写的博文,今天被朋友问上门来,url是类似/Upload/Dir/2011/123_D.jpg的形式。如果单纯的lc($r->uri),得到的url会变成/upload/dir/2011/123_d.jpg,目录是不存在的。所以要稍微改进一下。如下:
perl perl_set $url ' sub { my $r = shift; return $1.lc($2) if ($r->uri =~ m/^(.+\/)([^\/]+)$/); return $r->uri; } ';
这样就行了。

另一个测试,关于http_image_filter_module。配置语句很简单,就一行image_filter [size|resize|corp] wight height;就行了——如果图片太大,那还要加大image_filter_buffer,默认1M,大于这个大小的图片就不会缩略了。
比如配置如下:
nginx location / { root /var/www/html; index index.html index.htm; } location ~* ^/small/w_(\d+)/h_(\d+)/(.*)$ { rewrite /small/w_(\d+)/h_(\d+)/(.*)$ /$3 break; image_filter resize $1 $2; root /var/www/html; index index.html index.htm; }
这样通过/small/w_100/h_50/path/to/text.jpg,就能访问到/path/to/text.jpg的100*50大小的缩略图了。
如果只需要修改h或者w,其他的等比缩略,把另一项写成’-‘即可。
其他参数介绍:test,返回是否真的是图片;corp,截取图片的一部分;size,以json格式返回图片的长宽数据。