`
netingcn
  • 浏览: 18898 次
  • 来自: ...
社区版块
存档分类
最新评论

nginx中配置图片访问的技巧

阅读更多
应用场景:
uploads目录是用来存放上传到服务器的图片文件的根目录,在根目录下可能存在分类的文件夹,在这些文件夹中存放原始图片例如src.jpg, 同时可能存在该图片的对应的小图s_src.jpg。
假设uploads下的busipic文件夹下有a.jpg,s_a.jpg,b.jpg,default.jpg,servername为www.exam.com
如果访问www.exam.com/uploads/busipic/s_a.jpg返回www.exam.com/uploads/busipic/s_a.jpg,
访问www.exam.com/uploads/busipic/s_b.jpg返回www.exam.com/uploads/busipic/b.jpg,
访问www.exam.com/uploads/busipic/b.jpg返回www.exam.com/uploads/busipic/b.jpg,
访问www.exam.com/uploads/busipic/s_aaa.jpg返回www.exam.com/uploads/busipic/default.jpg
访问www.exam.com/uploads/busipic/返回www.exam.com/uploads/busipic/default.jpg
访问www.exam.com/uploads/busipic/dfdf.jpg返回www.exam.com/uploads/busipic/default.jpg



#访问小图
location ~ ^/uploads/(.*)?/s_.*$ {
    root html;

    if (!-f $request_filename) { #小图片不存在情况
rewrite ^(/uploads/.*/)s_(.*)$ $1$2 last; #去掉url中的s_,使其访问大图,注意此处必须用last,不能用break,因为last会对server标签重新发起请求,而break就直接使用当前的location中的数据源来访问

    }
}


#访问原图,如果原图片不存在,就给出当前目录下的缺省图片,要是当前目录下没有缺省图片,就返回指定目录下的缺省图片(确保指定目录目录存在该文件)
#原图对应的小图是以s_加上原图名字
location ~ ^/uploads/busipic {
    root html;
    index default.jpg;

    if (!-f $request_filename) { #原图片不存在,返回前当目录下的缺省图片
rewrite ^(/uploads/.*/).*$ $1default.jpg break;
    }

    error_page 404 =200 /default.jpg; #当目录下的缺省图片不存在时,返回一个指定的缺省文件,确保存在此文件,否则可能进入死循环 注意(404 =200)404后有一个空格,要不然配置会报错,这样的配置是把客户端看到的404 改为200
}




干净的配置项

location ~ ^/uploads/(.*)?/s_.*$ {
    root html;
    index default.jpg;

    if (!-f $request_filename) {
rewrite ^(/uploads/.*/)s_(.*)$ $1$2 last;

    }
}

location ~ ^/uploads/busipic {
    root html;
    index default.jpg;

    if (!-f $request_filename) {
rewrite ^(/uploads/.*/).*$ $1default.jpg break;

    }

    error_page 404 =200 /test/default.jpg;

    log_format main2 '$status ' '"$request_filename" no s_';
    access_log  logs/host.log  main2;
}

0
0
分享到:
评论
1 楼 mercyblitz 2010-06-27  
有没有nginx 支持表达式的资源?

相关推荐

    02nginx动态配置.zip

    在修改Nginx配置文件后,应先检查语法是否正确。可以使用`nginx -t`或`sudo nginx -t`命令进行测试,如果返回`configuration file /etc/nginx/nginx.conf test is successful`,则说明配置无误。然后重启Nginx以使...

    Nginx安装配置.rar

    ### 三、Nginx配置 Nginx的配置文件通常位于`/etc/nginx/nginx.conf`,包括全局块、events块、http块、server块和location块。配置Nginx的关键在于理解这些块的作用和相互关系。 1. **全局块** 设置影响Nginx全局...

    nginx基础配置.rar

    **Nginx基础配置详解** Nginx,一个高性能、轻量级的Web服务器和反向代理服务器,因其高效稳定和灵活的配置而备受青睐。...现在,你可以根据提供的视频教程,结合本文的讲解,开始你的Nginx配置之旅。

    实战Nginx及基础配置与管理

    在学习Nginx配置与管理之前,首先需要了解其基本概念和用途。Nginx在设计之初就非常注重高并发连接的处理,采用了基于事件驱动的架构模式,而且因为其代码的模块化,可以轻松地实现功能的扩展。Nginx的处理速度和高...

    Web应用安全:Nginx日志配置实验.doc

    在Kali Linux系统中,我们可以通过执行`nginx -t`命令来检查Nginx的配置文件是否正确。这个命令会验证配置文件的语法,并报告任何错误。 2. **打开Nginx主配置文件**: Nginx的主要配置文件通常位于`/etc/nginx/...

    nginx+中文文档

    ### Nginx 使用技巧 1. **虚拟主机**:通过设置多个`server`块,可以在一个Nginx实例上托管多个网站。 2. **错误页定制**:通过配置error_page指令,可以自定义错误页面,提升用户体验。 3. **Gzip 压缩**:开启...

    nginx日志分析技巧.zip

    针对“nginx日志分析技巧”,我们可以深入探讨多个方面,这些都与提供的文件名紧密相关。 首先,**IP统计**是基础的数据收集环节。通过分析nginx的日志,我们可以获取到每个访问者的IP地址,进而统计出最频繁的访问...

    nginx对http method的控制修改方法

    例如,当客户端发送一个POST请求时,如果Nginx配置中没有明确允许该方法,则可能会返回405 Method Not Allowed的状态码。 #### 三、源码级修改步骤 ##### 1. 进入Nginx源码目录 首先,需要获取Nginx的源码包,并...

    张宴版Nginx学习 以及配置

    本文将基于“张宴版Nginx学习 以及配置”这一主题,深入探讨Nginx的基础知识、配置技巧以及在实际应用中的各种模块和优化策略。 1. **Nginx基本配置与优化** - Nginx的核心配置文件是`nginx.conf`,其中包含了全局...

    Nginx权威指南.pdf

    最后,书中还涉及了Nginx的故障排查和维护技巧,包括如何查看错误日志、调试配置问题、进行性能监控等。这些技能对于运维人员来说至关重要,能够帮助他们在遇到问题时快速定位和解决。 总的来说,《Nginx权威指南》...

    nginx1.8.1

    2. **缓存机制**:Nginx 可以配置缓存策略,将经常访问的图片存储在内存中,减少对磁盘的读取,提高响应速度。 3. **GZIP 压缩**:Nginx 支持开启 GZIP 压缩,减小传输数据量,降低带宽消耗。 4. **HTTP/2 支持**:...

    Nginx学习丛书 Nginx应用与提高

    《Nginx学习丛书:Nginx应用与提高》是一套深入探讨Nginx服务器的教程,涵盖了Nginx...通过这套学习材料,读者可以系统地掌握Nginx的配置、管理和优化技巧,无论是对于初学者还是有经验的运维人员,都能从中受益匪浅。

    nginx配置

    `location`块是Nginx配置中最灵活的部分,根据URL匹配规则处理请求。它可以设置重定向、反向代理、缓存策略等: ```conf location / { try_files $uri $uri/ /index.php?$query_string; } location ~ \.php$ { ...

    跟我学Nginx+Lua开发_nginxlua原理_nginx_

    通过该模块,可以在Nginx配置文件中直接插入Lua代码,实现动态逻辑处理。Lua脚本可以直接访问Nginx的上下文信息,如请求头、请求体、响应头等,也可以调用Nginx API执行诸如发送HTTP请求、读写文件等操作。 五、...

    配置Nginx前端Apache后端服务器

    `location`指令在Nginx配置中至关重要,用于定义如何处理不同类型的请求。例如,可以通过`location`指定哪些请求直接由Nginx处理,哪些转发给Apache。 #### 编辑Nginx配置文件 在Nginx配置文件中,我们需要进行...

    Nginx手册(手册中文版)

    通过深入学习这份Nginx中文手册,无论是Web开发者还是系统管理员,都能掌握Nginx的核心特性和配置技巧,提升项目运行效率,优化服务性能,并为应对高并发场景做好准备。在实际工作中,结合Nginx的灵活性和稳定性,...

    nginx的七个实验

    **Nginx七大实验详解** 在IT行业中,Nginx是一个广泛应用的高性能Web服务器和反向代理服务器,因其高效...每一个实验都是一个动手实践的机会,旨在加深对Nginx工作原理的理解,并提升其在Web服务架构中的应用技巧。

    windows nginx +php 配置

    在浏览器中访问Nginx服务器的地址,如果能正确显示PHP的欢迎页面,说明配置成功。 总的来说,配置Windows上的Nginx+PHP环境需要对Web服务器和脚本处理有基本的理解,以及一定的配置文件编写技巧。通过这个过程,你...

    nginx1.0.4 配置

    在这个主题中,我们将深入探讨 Nginx 1.0.4 版本的配置文件 `nginx.conf` 的相关知识,以及如何进行有效的配置以优化服务器性能。 ### 一、Nginx 配置文件结构 Nginx 的配置文件通常位于 `/etc/nginx/nginx.conf`...

    nginx-release-1.21.4.zip

    总的来说,Nginx是现代Web服务架构中的重要组成部分,掌握其基本概念、配置和运维技巧对于任何IT从业者来说都是非常有价值的。通过离线包"nginx-release-1.21.4.zip",我们可以独立部署和管理Nginx服务器,不受网络...

Global site tag (gtag.js) - Google Analytics