`
QING____
  • 浏览: 2250807 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Nginx学习总结:geo与image模块(四)

 
阅读更多

斜体下划线,表示建议采用默认配置,无需显式的配置

一、ngx_http_geo_module

    核心特性为:根据客户端IP(段),geo模块将会匹配出指定的变量(比如,国家代码,城市代码)。geo模块可以帮助我们实现如下场景:

    1)简易的CDN网络

    2)多机房部署,站点分流。

    3)limit非法IP(段)的访问,或者限流。

    1、geo 【$address】$variable {...}

        上下文:http

    其中“address”变量是可选的,如果不指定,默认为“$remote_addr”;使用“address”变量值作为客户端IP,参与geo匹配,将匹配的值作为$variable。如果“address”变量不是一个合法的IP地址,那么将使用“255.255.255.255”作为可选值。geo模块中可以使用如下参数:

    1)delete:删除指定的网络。

    2)default:如果客户端IP没有在geo ip列表中匹配到任何信息,那么将使用default指定的值,作为$variable的值。如果没有使用default配置项,且匹配失败时,最终$variable的值为空。

    3)include:指定geo ip列表的外部文件。此文件中声明方式与在geo区块中一样,每行一个“ip”对应一个参数值。

    4)proxy:定义那些可信(trusted)的地址(通常是集群中其他nginx的地址),来自trusted地址的请求,将会使用header中“X-Forwarded-For”字段值,来匹配geo。proxy配置项将会按照声明的顺序检测。 

    5)ranges:表明地址使用区间方式定义,此参数需要在geo区块的首行使用,地址的区间需要按照正序方式声明。

 

geo $country {
    default    US;
    include    conf/geo.conf;
    proxy      192.168.1.0/24;
    ##ip list
    127.0.0.0/24    US;
    10.1.0.0/16      RU;
}
server {
    server_name .exmaple.org;
    $if($country != US) {
        rewrite ^/(.*)$ http://$country.example.org/$! last;
    }
}
server {
    server_name us.example.org;
    location / {
        ....
    }
}

 

geo $country {
    rangs;
    default    US;
    127.0.0.0-127.0.0.0    US;##区间表示,以"-"分割
    127.0.0.1-127.0.0.1    RU;
}

 

二、ngx_http_image_fileter_module

    图片裁剪辅助模块,此模块需要额外的安装,而且安装过程比较复杂,参见【安装过程】。

    1、image_filter

        上下文:location

    图片处理的方式,语法:

    

image_filter off;
image_filter test;
image_filter size;
imagefilter rotate 90 | 180 | 270;
image_filter resize 【width】 【height】;
image_filter crop 【width】 【height】;

    1)off:此location区块中,关闭此module处理。

    2)test:确保响应的图片格式为JPEG、GIF、PNG,否则将返回415错误代码(Unsupported Media Type)。这个参数可以用来检测图片URL是否为“格式良好”的图片。

    3)size:响应输出图片的尺寸信息(而不输出图片流),以json格式,如果出错,则返回空JSON。

{ "img" : { "width": 100, "height": 100, "type": "gif" } }

 

 

    4)rotate 90 | 180 | 270:逆时针旋转图片指定的角度。可选值为“90”、“180”、“270”,这个指令可以单独使用,也可以与“resize”、“crop”一起使用。

    5)resize 【width】【height】:按比例压缩图片的尺寸;如果只希望按照一个维度压缩,另一个维度可以用“_”表示。如果出错,将返回415错误代码。当此参数与rotate一起使用时,那么压缩后太会rotate。resize即为我们常说的“等比压缩”,最终压缩后的图片长、宽都不会超过参数指定的值。

    6)crop 【width】 【height】:裁剪,先按照图片较长的边等比压缩(同resize),然后再使用那个较短的边进行裁剪。如果此有rotate配置,那么先rotate然后再crop。

 

    图片resize、crop时,会抛出415错误,原因排查方式:nginx是否有访问此文件的权限(如果没有,不会抛出403,而是直接415),系统是否安装了相关的Media类型处理lib,图片的大小是否超过了“image_filter_buffer”的大小。

 

    2、image_filter_buffer 【size】

        默认值为“1M”;设置读取图片时所需要的最大内存空间,如果图片大小超过此值,则返回415错误。

    3、image_filter_jpeg_quality 【quality】

        默认值为“75”;jpeg格式的图片压缩质量。质量越低,所传输的数据大小越小;推荐的最大值为95。

    4、image_filter_sharpen 【percent】

        默认值为“0”;增加图片的锐度。“0”表示关闭锐度。

    5、image_filter_transparency 【on | off】

        默认值为“on”;对于PNG、GIF格式的图片,是否保留原始图片的透明度。

server {
    server_name img.example.org;
    location / {
        root www/images;
        image_filter resize $arg_width $arg_height;#请求参数中的width,height
    }
}

 

 

    

分享到:
评论
2 楼 QING____ 2015-08-08  
shake_me 写道
dsdsdsds

??键盘侠?
1 楼 shake_me 2015-08-07  
dsdsdsds

相关推荐

    Linux 下 Nginx的安装:(解压,进入目录里面执行,./configure –-> make -> sudo make install)

    在Linux环境中,Nginx是一个广泛应用的开源Web服务器,以其高性能、稳定性以及模块化设计而著名。本篇文章将详细介绍如何在Linux系统下通过源码编译的方式安装Nginx,这个过程包括解压源码包、配置、编译以及安装等...

    决战Nginx技术卷:高性能Web服务器部署与运维.pdf

    决战Nginx技术卷:高性能Web服务器部署与运维.pdf决战Nginx技术卷:高性能Web服务器部署与运维.pdf

    补充:Nginx之模块处理流程

    在Nginx中,主要存在四种类型的模块: 1. **核心模块(Core Modules)**:这是Nginx的基础,负责建立服务器的基础服务框架,管理网络层和应用层的协议,以及启动和协调其他模块的工作。核心模块为Nginx提供了基本的...

    Nginx模块全景:探索常用模块的强大功能

    5. **模块化设计**:Nginx具有模块化的设计,可以通过添加第三方模块来扩展其功能。 6. **缓存机制**:Nginx支持HTTP缓存,可以缓存静态内容以提高响应速度和减轻后端服务器的负载。 7. **配置简单**:Nginx

    决战Nginx: 系统卷 - 高性能Web服务器详解与运维.z01

    《决战Nginx系统卷:高性能Web服务器详解与运维》第一部分首先讲述了Nginx服务器的功能、模块管理和进程管理,然后讲述Nginx如何处理请求,在这个基础之上再认识Nginx提供的服务器的名字,Nginx服务器最大的焦点在于...

    决战Nginx系统卷:高性能Web服务器详解与运维第二部分(保证能用)

    第2章 Nginx的模块管理和进程管理 第3章 Nginx如何处理一个请求 第4章 服务器名字 第5章 协助用户操作Nginx的工具 第6章 5XX错误处理 第7章 使用TCMalloc优化Nginx 第8章 PCRE正则表达式 第9章 Nginx高可用的...

    添加了http_image_filter_module模块的Nginx

    **添加了http_image_filter_module模块的Nginx详解** Nginx是一款高性能的HTTP和反向代理服务器,因其高效稳定、内存占用低以及强大的负载均衡能力而被广泛应用于Web服务中。在Nginx中,模块是其核心功能的组成部分...

    深入理解Nginx:模块开发与架构解析(第2版)+(Linux_Unix技术丛书)+-+陶辉+著

    《深入理解Nginx:模块开发与架构解析(第2版)》是由陶辉编著的一本关于Nginx服务器的专著,属于Linux/Unix技术丛书中的一员。这本书全面探讨了Nginx的内部机制、模块开发以及系统架构,是理解和掌握Nginx核心技术...

    开源电子书:Nginx 开发手册文档.pdf

    2. 配置 Nginx:可以使用配置文件来配置 Nginx,包括设置服务器根目录、端口号、虚拟主机、负载均衡等。 3. PHP-FPM 安装配置:可以使用 PHP-FPM 作为 FastCGI server,提供 PHP支持。 Nginx 的一些常见问题和解决...

    添加nginx-http-flv-module模块并重新编译后的nginx(windows版)

    3. 配置Nginx:打开Nginx的配置文件`conf/nginx.conf`,检查或添加必要的设置以支持流媒体服务,例如启用`flv_last_byte`和`hls`指令。 4. 集成模块:进入Nginx的`src`目录,然后将`nginx-http-flv-module`目录复制...

    Nginx模块源码 nginx-notice-2

    **Nginx模块源码分析:...理解其源码可以提升对Nginx模块开发的理解,同时,编译和配置过程是学习Nginx扩展功能的重要实践环节。在实际应用中,这样的模块可以帮助我们实现定制化的服务器功能,以满足特定业务需求。

    Nginx学习笔记

    Nginx学习笔记 Nginx 是一个流行的开源 Web 服务器软件,能够处理高并发请求,常用于搭建高性能的 Web 服务器。本文将对 Nginx 的安装、配置、日志管理等方面进行详细的介绍。 一、Nginx 的安装 Nginx 的安装可以...

    ingress-nginx-controller-v1.2.0-images用到的镜像

    ingress-nginx-controller-v1.2.0_daemonset用到的镜像,免费下载

    深入理解Nginx:模块开发与架构解析-陶辉.mobi kindle版

    《深入理解Nginx:模块开发与架构解析》是阿里巴巴资深Nginx技术专家呕心沥血之作,是作者多年的经验结晶,也是目前市场上唯一一本通过还原Nginx设计思想,剖析Nginx架构来帮助读者快速高效开发HTTP模块的图书。...

    深入理解Nginx模块开发与架构解析第2版PDF

    接着,综合Nginx框架代码分析了Nginx架构的设计理念和技巧,此外,还新增了如何在模块中支持HTTP变量,以及与slab共享内存等相关的内容,相信通过完善,可进一步帮助读者更好地开发出功能丰富、性能—流的Nginx模块...

    Nginx头部处理:掌握请求与响应的艺术

    5. **模块化设计**:Nginx具有模块化的设计,可以通过添加第三方模块来扩展其功能。 6. **缓存机制**:Nginx支持HTTP缓存,可以缓存静态内容以提高响应速度和减轻后端服务器的负载。 7. **配置简单**:Nginx

    深入理解Nginx模块开发与架构解析(第2版)

    《深入理解Nginx模块开发与架构解析(第2版)》是一本专注于Nginx技术的专业书籍,针对Nginx的内部工作机制和模块开发进行了深入的探讨。本书旨在帮助读者掌握Nginx的核心概念、架构设计以及如何进行模块开发,从而...

    Nginx深入理解Nginx模块开发与架构解析(第2版)

    《Nginx深入理解Nginx模块开发与架构解析(第2版)》是一本针对Nginx技术的深入解析书籍,旨在帮助读者理解和掌握Nginx的核心设计理念以及如何进行高效的模块开发。这本书是该领域经典著作的更新版本,不仅延续了前一...

Global site tag (gtag.js) - Google Analytics