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

Nginx ImageFilterModule 实践

阅读更多

image_filter 配合 proxy_pass && proxy_cache 动态切图。

server {
    listen 80; 
    server_name    img.doyoueat.com;

    location ~* ^/resize/w_(\d+)/h_(\d+)/(.*)$ {
        rewrite /resize/w_(\d+)/h_(\d+)/(.*)$ /$3?w=$1&h=$2 break;
        proxy_set_header Host  $host;
        proxy_set_header X-Real-IP  $remote_addr;
        proxy_set_header X-Forwarded-For  $proxy_add_x_forwarded_for;
        proxy_pass  http://127.0.0.1;
        proxy_cache cache_one;
        proxy_cache_valid  200 304 12h;
        proxy_cache_key $host$uri$is_args$args;
       add_header X-Cache "ImageCache Status: $upstream_cache_status";
    }   
    location ~* \.(jpg|png|gif)$ {   
        root /home/doyoueat/img/;
        if ($args ~ "w=([0-9]+)&h=([0-9]+)"){
            set $w $1; 
            set $h $2; 
        }   
        image_filter resize $w $h; 
    }   
}

###### 在 nginx.conf 添加proxy_cache配置 ####
      proxy_temp_path   /home/doyoueat/data/proxy_temp_dir;
      proxy_cache_path  /home/doyoueat/data/proxy_cache_dir  levels=1:2   keys_zone=cache_one:2m inactive=1d max_size=1g;

 

更优雅的写法:

server {
    listen 80;
    server_name    img.doyoueat.com;

    location ~* ^/resize/w_(\d+)/h_(\d+)/(.*)$ {
        proxy_pass  http://127.0.0.1/proc_img/$3?width=$1&height=$2;
        proxy_set_header Host  $host;
        proxy_set_header X-Real-IP  $remote_addr;
        proxy_set_header X-Forwarded-For  $proxy_add_x_forwarded_for;
        #proxy_cache cache_one;
        proxy_cache_valid  200 304 12h;
        proxy_cache_key $host$uri$is_args$args;
       add_header X-Cache "ImageCache Status: $upstream_cache_status";
    }   
    location /proc_img/{
        alias /home/doyoueat/img/;
        image_filter resize $arg_width $arg_height;
    }   
}   
 

 

访问: http://img.doyoueat.com/resize/w_150/h_155/3.jpg

响应头:

HTTP/1.1 200 OK
Server: nginx/0.8.53
Date: Sun, 27 Nov 2011 13:26:33 GMT
Content-Type: image/jpeg
Content-Length: 5913
Connection: keep-alive
Last-Modified: Sun, 27 Nov 2011 12:44:43 GMT
X-Cache: ImageCache Status:  HIT
分享到:
评论

相关推荐

    史上最牛逼的Nginx最佳实践教程从入门到精通

    1.Nginx安装 2.nginx编译参数相机 3.nginx安装配置+清缓存模块安装 4.nginx连接PHP5.5 5.nginx配置虚拟主机 6.nginx location配置 ...Nginx模块与实践案例 提供了目前所有互联网公司都在用的51个案例 常见问题

    Nginx 从入门到实践.docx

    "Nginx 从入门到实践" 本文将从基本概念开始,详细介绍 Nginx 的安装、配置和使用,旨在帮助读者快速掌握 Nginx 的基础知识和实践经验。 Nginx 介绍 Nginx 是一个开源、高性能、高可靠的 Web 和反向代理服务器,...

    nginx入门实践培训课程

    nginx入门实践,培训课件,讲述nginx配置。

    Nginx知识体系入门实践.zip

    07.Nginx Rewrite跳转规则与实践 08.Nginx构建Https加密传输网站(基于IOS苹果要求) 09.Nginx构建动态网站架构lnmp&lnmt 10Nginx+Lua-实战代码灰度发布实战-WAF防火墙 11.Nginx性能优化与压测工具 12.Nginx常见问题 ...

    Nginx入门到实践 Nginx 中间件

    **Nginx 入门到实践:深入了解 Nginx 中间件** Nginx 是一款高性能的 HTTP 和反向代理服务器,广泛应用于互联网行业的网站部署和负载均衡。它以其轻量级、高并发处理能力而闻名,同时也常作为中间件在分布式系统中...

    Nginx入门到实践-Nginx中间件 web服务、代理,应用层负载均衡、应用层安全防护、 Nginx+Lua,动静分离,全面系统的Nginx课程

    结合实践、收集各种场景、常见问题 讲解Nginx中最实用的Webserver场景 提供一套整体的搭建配置方式 2.通用性 Nginx中间件,不局限于业务逻辑,有效 独立于后台开发框架(不论后端是Java开 发、PHP开发、或者其他...

    Nginx+Mongrel实践过程

    本文将深入探讨Nginx+Mongrel实践过程中的关键知识点,帮助你理解如何利用这两种技术实现高效且稳定的系统运行。 首先,Nginx是一款高性能的反向代理服务器和HTTP服务器,以其轻量级、高并发的特点闻名。Nginx通过...

    Nginx 性能优化实践1

    【Nginx 性能优化实践1】 Nginx 是一款高性能的HTTP和反向代理服务器,常用于网站的负载均衡和内容分发。本文主要探讨Nginx的三个核心优化点:反向代理与负载均衡、高速缓存以及性能参数调优。 一、Nginx 反向代理...

    linux下nginx安装、配置实战

    本篇将详细介绍如何在Linux系统上安装Nginx,以及进行基本的配置实践。 首先,我们需要了解Nginx的安装过程。在大多数Linux发行版中,可以通过包管理器来安装Nginx。例如,在Ubuntu或Debian系统中,可以使用`apt-...

    nginx1.18 nginx1.18 nginx1.18

    Nginx 1.18 是 Nginx Web 服务器的一个特定版本,它在 Linux 操作系统上运行。Nginx 是一个流行的开源 Web 服务器,以其高性能、高并发处理能力而闻名,...通过持续学习和实践,你可以成为熟练驾驭 Nginx 的专业人士。

    美大Nginx管理实践.dc2b57f0-2975-11e7-beb0-2be9f9e929b1.pdf

    标题中的“美大Nginx管理实践”表明该文档讨论的是Nginx服务器在特定环境下的管理与优化实践。Nginx是一款广泛使用的高性能HTTP和反向代理服务器,同样可以作为IMAP/POP3/SMTP服务器。文档内容聚焦于Nginx的管理实践...

    nginx arm64版本nginx-linux-arrch64.zip

    为了保障服务器安全,应启用防火墙限制访问,配置SSL证书,定期更新Nginx以修复安全漏洞,并遵循最佳实践,如避免使用root权限运行Nginx。 总之,"nginx-linux-arm64.zip"提供了针对ARM64架构的预编译Nginx,使得...

    Nginx从入门到实践-基础视频教程.txt.zip

    本套"从入门到实践"的基础视频教程,旨在帮助初学者快速掌握Nginx的核心概念与实际应用。 教程共分为五个章节,覆盖了从基础理论到深度学习的全面内容: **第一章 课程前言** 在这一章,你将了解到Nginx的历史...

    arm 架构 docker运行nginx镜像包

    arm 架构 docker运行nginx镜像包,arm 架构 docker运行nginx镜像包,arm 架构 docker运行nginx镜像包,arm 架构 docker运行nginx镜像包,arm 架构 docker运行nginx镜像包,arm 架构 docker运行nginx镜像包,arm 架构...

    centos8 nginx1.20.1 与nginx配置文件

    现在,我们可以下载Nginx的源代码包`nginx-1.20.1.tar.gz`。你可以通过wget或者浏览器将文件下载到本地,然后解压: ```bash wget http://nginx.org/download/nginx-1.20.1.tar.gz tar -zxvf nginx-1.20.1.tar.gz cd...

    nginx版本升级步骤

    **Nginx版本升级步骤详解** 在Web服务器领域,Nginx以其高性能、低内存消耗以及高并发处理能力而备受青睐。随着新版本的发布,可能会包含性能优化、安全修复和新特性,因此定期更新Nginx版本是必要的。本文将详细...

    nginx-1.13.3,nginx1.13.3不存在信息泄漏漏洞安全稳定nginx版本

    **Nginx 1.13.3 版本详解** Nginx 是一款高性能的 HTTP 和反向代理服务器,广泛应用于网站托管、负载均衡以及应用程序交付等领域。它以其高效、稳定和轻量级的特性著称,尤其在处理静态内容和高并发请求时表现优秀...

    ubuntu 1804 nginx 离线安装包

    总的来说,这份离线安装包为在无网络环境下的Ubuntu 18.04服务器上部署Nginx提供了一条有效路径,同时也为学习离线部署的初学者提供了实践机会。掌握这项技能对于那些管理远程或隔离环境的IT专业人员来说非常有价值...

Global site tag (gtag.js) - Google Analytics