nginx生成缩略图配置 – ttlsa教程系列之nginx
2016-04-21 00:00
453 查看
摘要: 经过多方的考虑,决定使用方案C,使用nginx自带模块生成缩略图,模块:–with-http_image_filter_module.
如下是我的安装参数:
./configure –prefix=/usr/local/nginx-1.4.1 –with-http_stub_status_module –with-http_realip_module –with-http_image_filter_module –with-debug
修改nginx.conf配置文件,或者放到你相应的server块中.
为了手机端浏览到与手机分辨率相匹配的图片,提高app访问速度以及减少用户的手机流量,需要将图片生成缩略图,这边共有以下解决方案。
A. 发布新闻生成多重缩略图 – 无法匹配到各种尺寸图片
B. 当相应缩略图不存在,则使用php或者java等程序生成相应缩略图 – 需要程序员协助
C. 使用nginx自带模块生成缩略图 – 运维即可完成
D. 使用nginx+lua生成缩略图
经过多方的考虑,决定使用方案C,使用nginx自带模块生成缩略图,模块:--with-http_image_filter_module.
如下是我的安装参数:
修改nginx.conf配置文件,或者放到你相应的server块中.
例如图片: http://test.ttlsa.com/123_100x10.jpg 1、 首先判断是否存在原图123.jpg,不存在直接返回404(如果原图都不存在,还生成缩略图干啥,对吧)
2、 跳转到http://tset.ttlsa.com/123.jpg?h=100&w=10,将参数高h和宽10带到url中。
3、 Image_filter resize指令根据h和w参数生成相应缩略图。
备注:长宽取小,例如原图是100*10,你传入的是10*2,那么他会给你生成10*1的图片.
生成缩略图只是image_filter功能中的一个,它一共支持4种参数:
test:返回是否真的是图片
size:返回图片长短尺寸,返回json格式数据
corp:截取图片的一部分,从左上角开始截取,尺寸写小了,图片会被剪切
resize:缩放图片,等比例缩放
nginx生成缩略图优缺点
优点:
1、 根据传入参数即可生成各种比例图片
2、 不占用任何硬盘空间
缺点:
1、消耗CPU,访问量大将会给服务器带来极大的负担.
几点建议:
1、 生成缩略是个消耗cpu的操作,如果访问量比较大的站点,最好考虑使用程序生成缩略图到硬盘上,或者在前端加上cache或者使用CDN。
转载请注明出处:http://www.ttlsa.com/html/1612.html
如下是我的安装参数:
./configure –prefix=/usr/local/nginx-1.4.1 –with-http_stub_status_module –with-http_realip_module –with-http_image_filter_module –with-debug
修改nginx.conf配置文件,或者放到你相应的server块中.
为了手机端浏览到与手机分辨率相匹配的图片,提高app访问速度以及减少用户的手机流量,需要将图片生成缩略图,这边共有以下解决方案。
A. 发布新闻生成多重缩略图 – 无法匹配到各种尺寸图片
B. 当相应缩略图不存在,则使用php或者java等程序生成相应缩略图 – 需要程序员协助
C. 使用nginx自带模块生成缩略图 – 运维即可完成
D. 使用nginx+lua生成缩略图
经过多方的考虑,决定使用方案C,使用nginx自带模块生成缩略图,模块:--with-http_image_filter_module.
如下是我的安装参数:
./configure --prefix=/usr/local/nginx-1.4.1 --with-http_stub_status_module \ --with-http_realip_module --with-http_image_filter_module --with-debug
修改nginx.conf配置文件,或者放到你相应的server块中.
location ~* /(\d+)\.(jpg)$ { set $h $arg_h; # 获取参数h的值 set $w $arg_w; # 获取参数w的值 #image_filter crop $h $w; image_filter resize $h $w; # 根据给定的长宽生成缩略图 } location ~* /(\d+)_(\d+)x(\d+)\.(jpg)$ { if ( -e $document_root/$1.$4 ) { # 判断原图是否存在 rewrite /(\d+)_(\d+)x(\d+)\.(jpg)$ /$1.$4?h=$2&w=$3 last; } return 404; }
例如图片: http://test.ttlsa.com/123_100x10.jpg 1、 首先判断是否存在原图123.jpg,不存在直接返回404(如果原图都不存在,还生成缩略图干啥,对吧)
2、 跳转到http://tset.ttlsa.com/123.jpg?h=100&w=10,将参数高h和宽10带到url中。
3、 Image_filter resize指令根据h和w参数生成相应缩略图。
备注:长宽取小,例如原图是100*10,你传入的是10*2,那么他会给你生成10*1的图片.
生成缩略图只是image_filter功能中的一个,它一共支持4种参数:
test:返回是否真的是图片
size:返回图片长短尺寸,返回json格式数据
corp:截取图片的一部分,从左上角开始截取,尺寸写小了,图片会被剪切
resize:缩放图片,等比例缩放
nginx生成缩略图优缺点
优点:
1、 根据传入参数即可生成各种比例图片
2、 不占用任何硬盘空间
缺点:
1、消耗CPU,访问量大将会给服务器带来极大的负担.
几点建议:
1、 生成缩略是个消耗cpu的操作,如果访问量比较大的站点,最好考虑使用程序生成缩略图到硬盘上,或者在前端加上cache或者使用CDN。
转载请注明出处:http://www.ttlsa.com/html/1612.html
相关文章推荐
- linux上nginx的安装启动以及配合php-fpm的使用
- nginx 配置从零开始
- nginx root&alias文件路径配置
- linux 下安装 nginx
- windows上 nginx 配置代理服务,配置多域名,以及最简单实现跨域配置
- Nginx技巧:灵活的server_name,Nginx配置一个服务器多个站点 和 一个站点多个二级域名
- Nginx担当WebSockets代理
- nginx大流量负载调优
- nginx request
- linux下如何重启nginx
- CentOS 6.5系统中安装配置Nginx服务器的方法
- nginx 红黑树实现
- 日志系统搭建(nginx+php+mysql+rsyslog+LogAnalyzer)
- Linux下安装Nginx详细图解教程(推荐阅读)
- nginx rewrite重写规则配置详解
- .Net分布式架构(一):Nginx实现负载均衡
- 云服务配置,mysql+phpmyadmin+nginx+svn+python
- nginx upstream的实现
- nginx静态资源配置
- nginx配置解释及优化