nginx image_filter 配置记录
nginx_image_filter http_image_filter_module
配置 ----------------------------------
第一种: //官方配置
location /img/ {
proxy_pass http://backend;
image_filter resize ;
image_filter rotate ;
error_page = /empty;
} location = /empty {
empty_gif;
} http://nginx.org/en/docs/http/ngx_http_image_filter_module.html#image_filter_webp_quality
-----------------------------------
第二种: //裁剪图片,不存储硬盘
访问 http://xxx.com/fanfan_11.jpg@100w_100h_75Q_r
http://xxx.com/fanfan.jpg@150w_100h_75Q_r
http://xxx.com/img/fanfan.jpg@11w_11_h_80Q_r # 等比缩放图片
location ~ (.+)\.(jpg|gif|png)@(\d+)w_(\d+)h_(\d+)Q_r$ {
set $w $; #宽
set $h $; #高
set $q $; #图片质量
image_filter resize $w $h;
image_filter_jpeg_quality $q;
image_filter_buffer 5M;
try_files $.$ /img/notfound.jpg;
}
# 裁剪图片
location ~ (.+)\.(jpg|gif|png)@(\d+)w_(\d+)h_(\d+)Q_c$ {
set $w $; #宽
set $h $; #高
set $q $; #图片质量
image_filter crop $w $h;
image_filter_jpeg_quality $q;
image_filter_buffer 5M;
try_files $.$ /img/notfound.jpg;
}
---------------------------------------
第三种: //保存在磁盘 访问
http://xxx.com/image_filter/222.jpg@120w_120h_75Q_r
代理到
xxx.com/image-resize/image_filter/.jpg?w=&h=&q= location ~ (.+)\.(jpg|gif|png)@(\d+)w_(\d+)h_(\d+)Q_([rc])$ { # 方便调试
error_log /usr/local/var/logs/nginx/xxx.com.imagefilter.error.log debug; # 限制referer,防盗链
# valid_referers xxx.com;#domain modify
# if ($invalid_referer) {return ;} set $w $; #宽
set $h $; #高
set $q $; #图片质量
set $type $;
set $image_path $.$; #真实图片地址
set $cache_path $1_$3w_$4h_$5Q_$.$; #临时文件地址
if ($type = 'r') {
set $type 'image-resize';
}
if ($type = 'c') {
set $type 'image-crop';
}
set $image_uri /$type$image_path?w=$w&h=$h&q=$q;
if (-f $document_root$cache_path) {
rewrite (.+)\.(jpg|gif|png)@(\d+)w_(\d+)h_(\d+)Q_([rc])$ $1_$3w_$4h_$5Q_$.$;
break;
}
if (!-f $document_root$cache_path) {
# proxy_pass http://$server_name.$image_uri;
# 必须填写ip,填写域名的话,nginx在启动的时候会检测域名,解析DNS,启动后,在修改域名的解析是不生效的
# 实际上,本机填写域名报500不生效,估计是DNS设置不对,会在server下添加
# resolver 127.0.0.1 valid=300s; proxy_pass http://127.0.0.1$image_uri;
break;
}
proxy_store $document_root$cache_path;
proxy_store_access user:rw group:rw all:r;
proxy_temp_path /tmp/images;
proxy_set_header Host $host;
expires 10d; # 设置图片过期时间10天
}
location ~ /image-resize(.+)\.(jpg|gif|png) {
rewrite /image-resize(.+)\.(jpg|gif|png)$ $.$ break;
image_filter resize $arg_w $arg_h;
image_filter_jpeg_quality $arg_q;
image_filter_buffer 5M;
try_files $.$ /img/notfound.jpg;
}
location ~ /image-crop(.+)\.(jpg|gif|png) {
rewrite /image-crop(.+)\.(jpg|gif|png)$ $.$ break;
image_filter crop $arg_w $arg_h;
image_filter_jpeg_quality $arg_q;
image_filter_buffer 5M;
try_files $.$ /img/notfound.jpg;
} https://blog.wangjunfeng.com/archives/669
nginx image_filter 配置记录的更多相关文章
- nginx https配置记录
一.证书生成: 要有两个文件,一个私钥,一个证书. 私钥:-----BEGIN PRIVATE KEY----- 开始 证书:-----BEGIN CERTIFICATE----- 开始 二.Ngin ...
- nginx.conf 配置记录
#user nobody; #启动进程,通常设置成和cpu的数量相等 worker_processes 1; #全局错误日志及PID文件 #error_log lognginxs/error.log; ...
- nginx缓存配置的操作记录梳理
web缓存位于内容源Web服务器和客户端之间,当用户访问一个URL时,Web缓存服务器会去后端Web源服务器取回要输出的内容,然后,当下一个请求到来时,如果访问的是相同的URL,Web缓存服务器直接输 ...
- (转)Nginx的https配置记录以及http强制跳转到https的方法梳理
Nginx的https配置记录以及http强制跳转到https的方法梳理 原文:http://www.cnblogs.com/kevingrace/p/6187072.html 一.Nginx安装(略 ...
- Nginx缩略图和Fastdfs整合以及image_filter配置,7点经验结论和5个参考资料
以下是7点经验结论和5个参考资料 1.Nginx单独配置缩略图与Nginx和Fastdfs模块整合,配置是不一样的. 非整合模式的配置,类似这样的: location ~* /(\d+)\.(jpg ...
- 【转】linux 编译安装nginx,配置自启动脚本
linux 编译安装nginx,配置自启动脚本 本文章来给各位同学介绍一篇关于linux 编译安装nginx,配置自启动脚本教程,希望有需要了解的朋友可一起来学习学习哦. 在公司的suse服务器装ng ...
- 《深入理解Nginx》阅读与实践(一):Nginx安装配置与HelloWorld
最近在读陶辉的<深入理解Nginx:模块开发与架构解析>,一是想跟着大牛练练阅读和编写开源代码的能力,二是想学学Nginx优秀的架构设计,三是想找一个点深入下Linux下网络编程的细节.侯 ...
- 图文解说:Nginx+tomcat配置集群负载均衡
图文解说:Nginx+tomcat配置集群负载均衡 博客分类: appserver nginxTomcatUbuntuLinux网络应用 作者:niumd Blog:http://ari.iteye ...
- Ubuntu Nginx下配置网站ssl实现https访问
最近在看 HTTP权威指南 看到介绍了HTTPS的ssl,自己就动手测试了下,将步骤记录下 HTTPS简介 什么是HTTPS?百科是这样解释的.HTTPS(全称:Hyper Text Trans ...
随机推荐
- centos6.5环境下zookeeper-3.4.6集群环境部署及单机部署详解
centos6.5环境下Zookeeper-3.4.6集群环境部署 [系统]Centos 6.5 集群部署 [软件]准备好jdk环境,此次我们的环境是open_jdk1.8.0_101 zookeep ...
- es6 属性及常用新属性汇总
一.includes的作用: includes:判断isNotShowProIdArray数组里是否包含this.item.productid元素 ,若包含true !!: !!(a)的作用是将a强制 ...
- PYTHON-组合 封装 多态 property装饰器
# 组合'''软件重用的重要方式除了继承之外还有另外一种方式,即:组合组合指的是,在一个类中以另外一个类的对象作为数据属性,称为类的组合 1. 什么是组合 一个对象的属性是来自于另外一个类的对象,称之 ...
- 基于Jenkins,docker实现自动化部署(持续交互)【转】
前言 随着业务的增长,需求也开始增多,每个需求的大小,开发周期,发布时间都不一致.基于微服务的系统架构,功能的叠加,对应的服务的数量也在增加,大小功能的快速迭代,更加要求部署的快速化,智能化.因此 ...
- [转] MachingLearning中的距离相似性计算以及python实现
参考:https://blog.csdn.net/gamer_gyt/article/details/75165842#t16 https://blog.csdn.net/ymlgrss/artic ...
- uva12436 回头再做一次
线段树维护等差数列,结点维护首项+公差即可 #include <cstdio> #include <cstring> #include <algorithm> us ...
- python 全栈开发,Day54(jQuery的属性操作,使用jQuery操作input的value值,jQuery的文档操作)
昨日内容回顾 jQuery 宗旨:write less do more 就是js的库,它是javascript的基础上封装的一个框架 在前端中,一个js文件就是一个模块 一.用法: 1.引入包 2.入 ...
- C# int可以表示的最大值
C#中int由4个字节组成,即由32个二进制数组成,由于最高位是用于表示正负数,所以实际上int所能表示的最大数为231-1=2147483647.
- ubuntu ufw防火墙软件的配置入门
顺便,一条龙作完安全吧. ufw的使用,是比iptables简单.但只能作简单的事儿,更改简单的netfilter里的iptable里的记录.难点的,可能还是得iptables原生命令. 自打2.4版 ...
- zookeeper单机集群搭建
1. 下载zookeeper 参考官方文档下载一节:https://zookeeper.apache.org/doc/current/zookeeperStarted.html#sc_Download ...