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

神奇的nginx

阅读更多

一,设置默认图片

 

不知道大家有没有遇到过,当你的系统的某些图片不存的时候,你须要提供一张默认的图片,404.jpg?恩,做为一个友好的提示,这是必须的。用nginx实现这个功能很容易。

 

 

location ~* .*\.(jpg|jpeg|gif|bmp)$ {
            if (!-f $request_filename) {#同鞋们,if后面需要一个空格哦~~~
                  rewrite ^ /404.jpg last;
            } 
         }

 

二,设置默认后缀

这样,当你图片不存时,将会返回默认的404.jpg图片,当然用户浏览器中的URL是不会变的。假如你的系统中全是JPG格式的图片,你的程序在访问的时候,如果觉得每一个图片都要加一个.jpg后缀,是不是很麻烦,OK,nginx也能很容易的解决。

 

 

 
location ~* ^/photo/([0-9]+)$ {
                  rewrite ^/photo/([0-9]+)$  /photo/$1.jpg last;
          }

 

三,nginx大战死代码

上面是关于nginx的很简单的应用,在开发过程中,我遇到过一个稍微复杂一点点的问题,就是我以前将我的图片存在A服务器上(A服务器到nginx上的nfs映射为/usr/imgs/11_59/),以/11/11*.jpg的形式访问,11即图片的最后两位数字,但量随着图片的增多,A服务器放不下更多的图片(图片名称是以递增方式命名的),当图片名称变人55....jpg的时候,我发现A服务器放不下更多的图片,这个时候,怎么办?

 

可能大家用脚指头想一想就知道,添加一台服务器B

 

对了,我也是这么想的。于是啊,我建立了B服务器到nginx所在服务器的nfs映射(/usr/local/60_99),好了,到这里总算解决了图片在一个服务器存储不够的问题,可是接下问题又来了,我的程序中,访问图片的地址是写死了的,即/XX/XX[0,9]+.jpg的形式访问(XX即图片地址的前两位),天啊,我怎么知道图片到底在哪个服务器呢?

 

正当我们愁眉苦脸的时候,nginx又闪亮登场,大叫一声“交给我”

 

 

location  ~ /photo/([1-5][0-9]) {
     root   /user/imgs/11_55;
 }

location  ~ /photo/([6-9][0-9]) {
     root   /user/imgs/60_99;
 }

 (解释一下:root 的功能就是会在之前你的访问地址/photo/... 前面加上 /user/imgs/60_99/ 即将你访问的地址指向/user/imgs/60_99/photo/*.jpg

 

四,nginx设置图片防盗链接

location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
	{
		
		valid_referers none blocked 192.168.154.128 192.168.154.1;
		if ($invalid_referer)
		{
			rewrite ^  /403.jpg break;
		}
                
               if (!-f $request_filename) {
                  rewrite ^ /404.jpg last;
                } 
               
                expires 30d;

	}
 

先来一下效果:

 


大家记得将location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$

整合到一起去哦,对了,注意一下这个:
if ($invalid_referer)
{
rewrite ^  /403.jpg break;
}



哇~~~~,世界终于清静了。

 

 

 

  • 大小: 90.2 KB
1
2
分享到:
评论

相关推荐

    浅谈nginx反向代理中神奇的斜线

    在进行nginx反向代理配置的时候,location和proxy_pass中的斜线会造成各种困扰,有时候多一个或少一个斜线,就会造成完全不同的结果,所以特地将location和proxy_pass后有无斜线的情况进行了排列组合,进行了一次...

    Nginx配置入门教程

    Nginx 最常的用途是提供反向代理服务,那么什么反向代理呢?正向代理相信很多大陆同胞都在这片神奇的土地上用过了,原理大致如下图: 代理服务器作为客户端这边的中介接受请求,隐藏掉真实的客户,向服务器获取资源...

    jinx::sparkles:jinx-一个神奇的Nginx包装器

    jinx是完全用Bash编写的nginx的包装脚本。 与使用普通Shell命令相比,它可以帮助您以更简化的方式管理站点和配置。 目录 jinx site 先决条件 由于这是jinx的较早版本,因此仍然对您的环境有一些假设。 当前这些如下...

    神奇读心术HTML5游戏源码

    因此,你需要将源码部署到一个Web服务器上,例如Apache、Nginx或者简单的Node.js服务器,然后通过浏览器访问来运行游戏。 压缩包中的"duxinshu"可能包含以下文件和文件夹: 1. HTML文件:游戏的主页面,包含了HTML...

    网址导航系统源码 光年全新v5模板

    7、主题内置神奇的$this语法 可快速开发并保留著作版权 8、对前台URL进行伪静态重写 对搜索引擎更加友好 9、内置硬防洪和硬防墙插件 告别域名忧虑 10、系统全开源 告别后门风险 安装教程 PHP版本8.1 Nginx服务器首先...

    网址导航系统源码 光年全新v5模板V2.45完美版

    网址导航系统源码 光年全新v5模板V2.45完美版 1、采用光年全新v5模板开发后台 2、后台内置8款主题色,分别是简约白、炫光绿、渐变紫、活力橙、少女粉、少女紫、科幻蓝、护眼黑 ...Nginx服务器首先站点部署下方伪静态

    PokedexTracker.Backend

    3. **负载均衡**:随着用户量的增长,可部署到多台服务器,使用Nginx等负载均衡器分发请求,提升系统稳定性。 五、持续集成与部署 1. **Git版本控制**:项目使用Git进行版本控制,便于团队协作和代码回溯。 2. **CI...

    HarnessWebApp-demo:一个简单的Web应用程序,用于通过连续部署和验证来演示线束

    作为开发人员,建议您的新功能,然后神奇地发生! #要求 一个github帐户 短篇故事 作为一名疯狂的开发人员,您希望在不到5分钟的时间内做出贡献并看到您的编辑效果! 应用程序: 步骤1 在GitHub中,编辑文件/...

    pokemonService:给出口袋妖怪名称时返回莎士比亚描述的终点

    9. **负载均衡与集群**:在生产环境中,可能通过Nginx或Apache HTTP Server进行负载均衡,以分散到多个服务实例上,提高可用性和响应速度。 10. **持续集成/持续部署(CI/CD)**:使用Jenkins、GitLab CI/CD等工具...

    openssl1.1.1t安装包

    OpenSSL 是一个强大的安全套接层(SSL)和传输层安全(TLS)协议实现库,它不仅提供了加密算法,还支持证书管理和各种协议,广泛应用于服务器端软件,如Apache、Nginx等。在Linux系统中,安装OpenSSL是必要的,尤其...

    futchall:FFutchall是Futsal的社区和排名应用程序

    以神奇宝贝GO对体育馆的占领为主题,进行了五人制足球比赛。 您可以注册自己的团队以批准用户注册并匹配其他团队。 您可以通过选择可以参加的日期来帮助团队负责人安排比赛时间表。 您可以通过在团队和体育场上...

    learn-raspberry-pi:了解如何开始使用Raspberry Pi,以便您可以凭空想象来构建makemake *一切*!

    以下是一些关于树莓派的基础知识和实践应用,将带你逐步了解如何利用这个神奇的小设备进行创作。 1. **硬件组成** - **主板**: 树莓派的核心是单板计算机,包含处理器(如BCM2835或BCM2711)、内存、GPIO引脚、...

    python入门到高级全栈工程师培训 第3期 附课件代码

    python入门到高级全栈工程师培训视频学习资料;本资料仅用于学习,请查看后24小时之内删除。 【课程内容】 第1章 01 计算机发展史 02 计算机系统 03 小结 04 数据的概念 ...16 Model操作之select_related以及...

Global site tag (gtag.js) - Google Analytics