nginx缓存功能cache的教程(2)
来源:asp之家 发布时间:2009-09-23 20:00:00
2、传统缓存之二(!-e)
原理和404跳转基本一致,但更简洁一些:
location / {
root /home/html/;
proxy_store on;
proxy_set_header Accept-Encoding '';
proxy_temp_path /home/tmp;
if ( !-f $request_filename )
{
proxy_pass http://www.sudone.com/;
}
}
可以看到这个配置比404节约了不少代码,它是用!-f来判断请求的文件在文件系统上存不存在,不存在就proxy_pass到后端,返回同样是用proxy_store保存。
两种传统缓存都有着基本一样的优点和缺点:
缺点1:不支持带参数的动态链接,比如read.php?id=1,因为nginx只保存文件名,所以这个链接只在文件系统下保存为read.php,这样用户访问read.php?id=2时会返回不正确的结果。同时不支持http://www.sudone.com/这种形式的首页和二级目录http://www.sudone.com/download/,因为nginx非常老实,会将这样的请求照链接写入文件系统,而这个链接显然是一个目录,所以保存失败。这些情况都需要写rewrite才能正确保存。
缺点2:nginx内部没有缓存过期和清理的任何机制,这些缓存的文件会永久性地保存在机器上,如果要缓存的东西非常多,那就会撑暴整个硬盘空间。为此可以使用一个shell脚本定期清理,同时可以撰写php等动态程序来做实时更新。
缺点3:只能缓存200状态码,因此后端返回301/302/404等状态码都不会缓存,假如恰好有一个访问量很大的伪静态链接被删除,那就会不停穿透导致后端承载不小压力。
缺点4:nginx不会自动选择内存或硬盘作为存储介质,一切由配置决定,当然在当前的操作系统里都会有操作系统级的文件缓存机制,所以存在硬盘上也不需要过分担心大并发读取造成的io性能问题。
nginx传统缓存的缺点也是它和squid等缓存软件的不同之特色,所以也可看作其优点。在生产应用中它常常用作和squid的搭档,squid对于带?的链接往往无法阻挡,而nginx能将其访问拦住,例如:http://sudone.com/?和http://sudone.com/在squid上会被当做两个链接,所以会造成两次穿透;而nginx只会保存一次,无论链接变成http://sudone.com/?1还是http://sudone.com/?123,均不能透过nginx缓存,从而有效地保护了后端主机。
nginx会非常老实地将链接形式保存到文件系统中,这样对于一个链接,可以很方便地查阅它在缓存机器上的缓存状态和内容,也可以很方便地和别的文件管理器如rsync等配合使用,它完完全全就是一个文件系统结构。
这两种传统缓存都可以在linux下将文件保存到/dev/shm里,一般我也是这么做的,这样可以利用系统内存来做缓存,利用内存的话,清理过期内容速度就会快得多。使用/dev/shm/时除了要把tmp目录也指向到/dev/shm这个分区外,如果有大量小文件和目录,还要修改一下这个内存分区的inode数量和最大容量:
mount -o size=2500M -o nr_inodes=480000 -o noatime,nodiratime -o remount /dev/shm
上面的命令在一台有3G内存的机器上使用,因为/dev/shm默认最大内存是系统内存的一半就是1500M,这条命令将其调大成2500M,同时shm系统inode数量默认情况下可能是不够用的,但有趣的是它可以随意调节,这里调节为480000保守了点,但也基本够用了。
猜你喜欢
- Exchange Server 2007 用在产品环境中应该配置64位的硬件。一般说来,32位的Exchange 2007只能用于测试,评估
- 有网友在微博上爆料,发现百度网站上有严重漏洞,不仅可以创建文件夹,还可以上传内容上去。据了解,这个漏洞实际上是由于fckeditor编辑器造
- 我是从2006年开始注册 Adsense 的,刚刚开始的时候是做一个视频网站,数据涉及采集版权内容,申请了很多次都没有通过.还好那时候ads
- 英文原文:Five Best FTP Clients无论你是做网站工作,还是运行一个家庭FTP服务器,或者你只是喜欢高速下载,一个稳定且功能
- 自从《精灵》之后,丁磊对于跟韩国人合作的兴趣大为减弱。他相信自己的团队可以开发出更优秀的产品,更相信运营自己开发的产品,无论是可控性还是利润
- 病毒式营销目的是为了被营销对象在公众环境中有效进行传播,以帮助你的生意或者你所提供的服务更好地开展下去。病毒式营销分为两种:一种是针对传统领
- FTP站点是因特网上比较重要的资源,但是登录FTP网站和操作FTP站点上的文件或文件夹仍然比较繁琐。我们知道,在资源管理器器可以把一个远程电
- 1、最近在搜索结果呈现方式上两个关键词经常出现:综合(整合)搜索、搜索建议。2、综合(整合)搜索,简单来说:现在google、baidu的搜
- ASP中数据库的安全是一个很严肃的问题。很多代码的编写者意识到了这类问题,并且小心翼翼地对他们认为有问题的地方做了补救,但常见的情况是要么没
- “忽如一夜春风来,千树万树梨花开”,这句诗跟现今网页游戏遍地开花的景象甚是贴合。据不完全数据统计,目前我国有近300多家互联网公司在开发以及
- 编者按/由中国社科院工业经济研究所所长、中国经营报社社长金碚带领的竞争力研究团队,在《竞争力经济学》的理论基础上,与《中国经营报》共同研发了
- 当前经济大环境下对中国经济的冲击有目共睹,依赖于海外市场的企业在这场危机首当其冲,特别是沿海一带出口型中小企业,出口受阻,很少有能逃脱出当前
- 在Windows服务器系统中,每当服务器启动成功时,系统的C盘、D盘等都会被自动设置成隐藏共享,尽管通过这些默认共享可以让服务器管理维护起来
- 不知不觉写程序已经做了2年,有成功的喜悦,也有失败的痛苦,但总不敢称自己是高手,因为和我心目中真正的高手们比起来,还差的太远。世界上并没有成
- 首先最大的亮点就是软文推广,目前用户比较喜欢的就是视频推广和软文推广,这样的推广也最不耗力气,而又最有效率的一种方式了。视频最好的例子就是最
- WEB服务器主要是面向互联网的。所以,其是企业众多信息化应用中最容易受到攻击的。现在企业的WEB应用越来越多,特别是其也逐渐在成为其他信息化
- xiaoxue总不能这样耗下去了,为了爱,,为了我的家,我要赚钱。简单的介绍一下自己吧:1988年5月出生了一个牛逼闪闪的我,我小时候大病三
- 11月11日,是所有男女光棍们共同的节日。每一个生活在这个城市中的人不可能没有感觉,与往日相比,如今的光棍族群正在变得更加浩荡。那些以各种面
- 服务器托管是指为了提高网站的访问速度,将您的服务器及相关设备托管到具有完善机房设施、高品质网络环境、丰富带宽资源和运营经验以及可对用户的网络