Nginx缓存的缺点和优点专家评价

开发 前端
Nginx缓存有很多人不是很了解,那么好我们在这里就向大家介绍有关于Nginx缓存的优点和缺点,这样大家就会一目了然的知道相关问题了。

Nginx缓存对于不少人来说都不是很明朗的一个知识。那么好我们就借介绍有关优点和缺点的机会把大家带进Nginx缓存的世界。希望大家在文中能找到自己相关的使用方法。

两种Nginx缓存都有着基本一样的优点和缺点:

缺点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保守了点,但也基本够用了。

【编辑推荐】

  1. Nginx缓存如何避免传统缓存的错误
  2. Nginx php如何解决502 Bad Gateway错误
  3. Nginx proxy反向代理的十五大技术特点
  4. Nginx异步代理四步解决相关问题
  5. Nginx Web服务器标准IP解决方案
责任编辑:张浩 来源: 互联网
相关推荐

2022-10-17 06:30:23

PyLint

2010-10-22 10:59:43

SQL Server的

2012-06-07 09:55:19

MPLSWAN

2009-06-16 14:18:54

Hibernate的优

2021-03-07 16:45:42

RPAAI机器人自动化

2012-11-29 09:54:53

移动网络云计算网络优化

2015-03-20 16:42:44

开源云计算开源软件混合云

2022-01-06 09:41:01

云计算混合云安全

2010-11-22 14:42:13

MySQL行级锁

2009-12-30 14:15:38

PPPoA体系

2011-06-14 14:43:03

灰盒测试

2023-06-08 15:27:17

CAN网络

2022-04-07 12:18:55

物联网设备物联网IOT

2010-08-28 14:53:14

2014-09-25 09:41:07

设计师

2011-07-01 15:57:06

Gartner存储云计算

2024-03-08 11:30:38

SaaSIT管理平台管理

2022-12-02 00:13:51

2021-07-23 10:11:33

物联网IOT

2022-04-22 14:05:43

数据库MongoDBMySQL
点赞
收藏

51CTO技术栈公众号