Nginx 增加 Image 缩略图功能,需要使用Nginx Image 缩略图 模块

 
    模块同时支持 Nginx 和 tengine
  • 本nginx模块主要功能是对请求的图片进行缩略/水印处理,支持文字水印和图片水印。
  • 支持自定义字体,文字大小,水印透明度,水印位置。
  • 判断原图是否是否大于指定尺寸才处理。 ....等等
1、下载模块代码,并解压
 
    # cd /usr/local/src
    # unzip master.zip/
 
2、重新编译Nginx,同时指定Nginx Image缩略图模块
   

    安装依赖包
# yum install -y gcc automake autoconf m4 gd-devel pcre-devel libcurl-devel

编译安装 Nginx
# cd /usr/local/src
# wget http://nginx.org/download/nginx-1.10.3.tar.gz
# tar -zxvf nginx-1.10.3.tar.gz
# cd nginx-1.10.3
# useradd www -s /sbin/nologin
# ./configure --prefix=/usr/local/nginx --user=www --group=www --with-http_stub_status_module --with-http_ssl_module \
--add-module=../ngx_image_thumb-master
# make && make install
 
3、Nginx配置
 
编辑nginx.conf,添加如下内容(红色):
 
location / {
root html;
image on;
image_output on;
}
或者指定目录开启
location /upload {
root html;
image on;
image_output on;
}
 
参数说明:
 
image on/off 是否开启缩略图功能,默认关闭
 
image_backend on/off 是否开启镜像服务,当开启该功能时,请求目录不存在的图片(判断原图),将自动从镜像服务器地址下载原图
 
image_backend_server 镜像服务器地址
 
image_output on/off 是否不生成图片而直接处理后输出 默认off
 
image_jpeg_quality 75 生成JPEG图片的质量 默认值75
 
image_water on/off 是否开启水印功能
 
image_water_type 0/1 水印类型 0:图片水印 1:文字水印
 
image_water_min 300 300 图片宽度 300 高度 300 的情况才添加水印
 
image_water_pos 0-9 水印位置 默认值9 0为随机位置,1为顶端居左,2为顶端居中,3为顶端居右,4为中部居左,5为中部居中,6为中部居右,7为底端居左,8为底端居中,9为底端居右
 
image_water_file 水印文件(jpg/png/gif),绝对路径或者相对路径的水印图片
 
image_water_transparent 水印透明度,默认20
 
image_water_text 水印文字 "Power By Vampire"
 
image_water_font_size 水印大小 默认 5
 
image_water_font 文字水印字体文件路径
 
image_water_color 水印文字颜色,默认 #000000
 
4、调用方法
 
在nginx网站根目录存放一个 test.png 文件,然后访问 http://192.168.145.34/test.png,如下图:
 
 

访问时加上参数,生成/输出 test.png 300x200 的缩略图,如下图:
http:/192.168.145.34/test.png!c300x200.png

 
访问时加上参数,生成/输出 test.png 500x400 的缩略图,如下图:
http:/192.168.145.34/test.png!c500x400.png

 
参数说明:
c 是生成图片缩略图的参数
300 是生成缩略图的宽度
200 是生成缩略图的高度
 
我们可以生成四种不同类型的缩略图,并支持 jpeg / png / gif (Gif生成后变成静态图片)图片文件。
 
C 参数按请求宽高比例从图片高度 10% 处开始截取图片,然后缩放/放大到指定尺寸( 图片缩略图大小等于请求的宽高 )
M 参数按请求宽高比例居中截图图片,然后缩放/放大到指定尺寸( 图片缩略图大小等于请求的宽高 )
T 参数按请求宽高比例按比例缩放/放大到指定尺寸( 图片缩略图大小可能小于请求的宽高 )
W 参数按请求宽高比例缩放/放大到指定尺寸,空白处填充白色背景颜色( 图片缩略图大小等于请求的宽高 )

Nginx 增加 Image 缩略图 功能的更多相关文章

  1. wordpress 缩略图功能函数 the_post_thumbnail

    很多 WordPress 主题,特别是那些杂志型的主题,会给每篇日志加上一张缩略图,这种展现方式一般用在首页,可能单独出现,或者和日志摘要一起.但是目前位置没有一个标准的方法去实现日志缩略图,很多主题 ...

  2. Nginx 支持 WAF 防护功能实战

    WAF(Web Application Firewall),中文名称叫做“Web应用防火墙 WAF的定义是这样的:Web应用防火墙是通过执行一系列针对HTTP/HTTPS的安全策略来专门为Web应用提 ...

  3. nginx增加第三方模块

    增加第三方模块 ============================================================ 一.概述nginx文件非常小但是性能非常的高效,这方面完胜ap ...

  4. nginx实时生成缩略图到硬盘上

    现在随着各终端的出现(手机,ipad等平板),以及各种终端的手机分辨率和尺寸都不同,现在手机用户流量都是宝,网上出现了各种各样的生成缩略图功能的架构,有使用php实时生成缩略图的,也有用nginx + ...

  5. 转:Nginx国人开发缩略图模块(ngx_image_thumb)

    ngx_image_thumb是nginx中用来生成缩略图的模块,生存缩略图的方法很多,之前也写过一篇 <nginx生成缩略图配置>,在github上发现国人开发的一款模块,作者的文档写的 ...

  6. 使用NGINX+LUA实现WAF功能 和nginx 防盗链

    使用NGINX+LUA实现WAF功能 一.了解WAF 1.1 什么是WAF Web应用防护系统(也称:网站应用级入侵防御系统 .英文:Web Application Firewall,简称: WAF) ...

  7. 【Nginx】面试官竟然问我Nginx如何生成缩略图,还好我看了这篇文章!!

    写在前面 今天想写一篇使用Nginx如何生成缩略图的文章,想了半天题目也没想好,这个题目还是一名读者帮我起的.起因就是这位读者最近出去面试,面试官正好问了一个Nginx如何生成缩略图的问题.还别说,就 ...

  8. Nginx实战部署常用功能演示(超详细版),绝对给力~~~

    前言 上次分享了一些开发过程中常用的功能,但如果到真实环境中,其实还需要一些额外的配置,比如说跨域.缓存.配置SSL证书.高可用等,老规矩,还是挑几个平时比较常用的进行演示分享.上篇详见Nginx超详 ...

  9. .NET跨平台之旅:增加文件日志功能遇到的挫折

    在将我们的ASP.NET 5示例站点(about.cnblogs.com)升级至ASP.NET 5 RC1的时候,我们增加了控制台日志功能. 在ASP.NET 5添加日志功能很简单,只需在projec ...

随机推荐

  1. WebRTC学习之ICE深入理解

    ICE(交互式连接建立---Interactive Connectivity Establishment),是一种标准穿透协议.它利用STUN和TURN服务器来帮助端点建立连接.下图显示了ICE的基本 ...

  2. Hibernate入门1 - Hibernate概述及第一个小例子

    一.什么是ORM? ORM,即Object Relational Mapping.我们知道,利用面向对象的思想编写的数据库应用程序最终都是把对象信息保存在关系型数据库中,于是需要编写与底层数据库相关的 ...

  3. IDEA快捷键整理

                                                                              IDEA快捷键整理 一.修改快捷键方法: 点击 Fi ...

  4. ElasticSearch 工具类封装(基于ElasticsearchTemplate)

    1.抽象接口定义 public abstract class SearchQueryEngine<T> { @Autowired protected ElasticsearchTempla ...

  5. javascript编程中this解析

    一.为什么要使用this? this 提供了一种更优雅的方式来隐式"传递"一个对象引用,因此可以将 API 设计得更加简洁并且易于复用.随着你的使用模式越来越复杂,显式传递上下文对 ...

  6. docker学习篇(一) ----入门篇

    什么是docker docker自2013年诞生以来已有5年了,最初基于Google公司的go语言实现的,项目代码在GitHub上进行维护. 项目地址:https://github.com/moby/ ...

  7. EasyNetQ中使用自定义的ISerializer

    最近在使用EasyNetQ时,遇到一个问题:c++项目组发送的消息数据不是Json数据,而是自定义的数据格式(各字段+‘|’连接成一个字符串),EasyNetQ中消费消息接收的都是强类型,没办法直接消 ...

  8. 从零开始学 Web 之 移动Web(五)touch事件的缺陷,移动端常用插件

    大家好,这里是「 从零开始学 Web 系列教程 」,并在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公众号:Web前端之巅 博客园:ht ...

  9. MongoDB-副本集搭建与管理

    目录 MongoDB 副本集 一.副本集概念 二.副本集部署 三 .副本集维护 四.注意事项 MongoDB 副本集 一.副本集概念 单节点的 MongoDB 在数据的安全和冗余方面是比较低的,在生产 ...

  10. 通过 CLI 管理 Jenkins Server

    Jenkins 内置的命令行接口允许管理员通过命令行工具访问并管理 Jenkins.这让我们可以通过脚本自动化的创建配置或执行任务,也就是把 Jenkins 中的配置代码化了.Jenkins 同时支持 ...