让nginx作为图片处理服务器
来源:互联网 发布:array push 二维数组 编辑:程序博客网 时间:2024/06/03 23:39
ngxin有很多有一席的module,由于我们当前业务量不大,服务器的负载比较低,所以可用ngxin的Image Filter作为图片缩放、剪裁、旋转等处理的工具。
说实话,在max上面配置这东西有点费劲,Home Brew 默认的nginx的包无法配置module。需要安装另外一个版本的nginx-full。
安装依赖
image filter依赖libgd2
,mac默认没有安装这个东西,所以需要先安装。
brew install gd
是的,不是libgd2
,就是gd
。
安装nginx
nginx的module不是像apache一样动态加载的,必须编译到nginx的主文件里面。这让我想起了golang。这些坑爹玩意儿,热配置需要做N多处理。
brew tap homebrew/nginxbrew install nginx-full --with-http_image_filter_module --with-gd
--with-gd
参数用于添加gd
支持。
配置image filter
网上有很多利用image filter做图片缩放的配置,下面是我写的一个配置(部分代码),比较简陋,另外,目前的问题是jpeg的图片质量参数无法生效,还在找原因。
set $width "-";set $height "-";if ( $arg_w != "" ){ set $width $arg_w;}if ( $arg_h != "" ){ set $height $arg_h;}set $rotate "-";if ( $arg_r != "" ){ set $rotate $arg_r;}set $quality "-";if ( $arg_q != "" ){ set $quality $arg_q;}location /images/ { image_filter resize $width $height; # 缩放图片 image_filter rotate $rotate; # 旋转图片 image_filter_jpeg_quality $quality; # jpeg图片质量,没有效果 image_filter_interlace on; # 将jpeg图片转换为可以渐进式加载的格式,这样用户可以尽快看到图片效果 image_filter_transparency on; # 是否保留图片的透明像素,因为我们还有png图,所以这里要打开 image_filter_buffer 8M; # 这里需要手动设置下图片缓存大小,默认为1M,超出1M的图片服务器会报错。 error_page 415 = /empty; # 如果处理图片文件不存在或者处理图片失败,会返回一张空白图}location = /empty {# 使用`empty_gif`模块,返回一张1x1像素的gif图。建议不要再前端页面中将'/empty'作为占位图,没有必要,前端页面可以使用 'data:image/gif;base64,R0lGODlhCgAKAIAAAMzMzP///yH5BAAAAAAALAAAAAAKAAoAAAIRhI8Qy6zdHlxyVnjjdJv2UAAAOw==' empty_gif; }
这样就可以通过*.jpg?r=90&w=100&h=100
这样的参数配置做图片的缩放和旋转了。
其他选择
nginx 还有一些其他的第三方module可以用于图片缩放。例如:
- ngx_small_light 可以使用ImageMagick的功能,比image filter强大很多。
- ngx_image_thumb是国产的,这个module会自动处理图盘的后缀参数,进行图片剪裁、缩放,配置起来比较容易,同时支持图片水印。
0 0
- 让nginx作为图片处理服务器
- Nginx作为gitweb服务器
- Nginx服务器处理相关图片详细方法
- jersey作为图片服务器
- 【服务器】Nginx 作为应用服务器映射服务
- nginx for Windows入门使用及作为图片服务器的用法
- nginx for Windows入门使用及作为图片服务器的用法
- nginx配置图片服务器
- NGINX部署图片服务器
- NGINX 图片服务器
- Nginx搭建图片服务器
- nginx搭建图片服务器
- nginx配置图片服务器
- Nginx图片服务器
- nginx图片服务器搭建
- FTP+Nginx图片服务器
- 搭建Nginx图片服务器
- 搭建Nginx图片服务器
- Java内存分配原理深入理解
- ZJOI2008 树的统计 树链剖分学习
- [转]Python traceback
- Zookeeper异步通知模式--watcher
- 支付宝开发的几个问题
- 让nginx作为图片处理服务器
- idea使用过程遇到问题集一
- dynamic_cast的用法
- Servlet入门时候的坑
- mysql SQL Select 语句 简单应用
- 剑指offer 调整数组顺序使奇数位于偶数前面
- SparseArray替代HashMap来提高性能
- Python线程isAlive方法
- Linux程序设计-读书笔记2