专栏首页北京马哥教育三分钟看懂Nginx服务器的缓存原理和机制

三分钟看懂Nginx服务器的缓存原理和机制

作者:LifeIsButA_Span 来源: http://blog.csdn.net/lifeisbuta_span/article/details/70598586

Nginx服务器的缓存原理,是在学习过程中比较重要的一个知识点,学习通透之后,对于自己的能力会有不小的提升——而且提升不只限于nginx一方面,技术理论一通百通,对于理解其他内容也会有很大帮助。

Web缓存主要思想

Web缓存技术的基本思想是利用客户访问的时间局部性原理,对客户已经访问过的内容在Nginx服务器本地建立副本,这样在一段时间内再次访问该数据,就不需要通过Nginx服务器再次向后端服务器发出请求,所以能够减少Nginx服务器与后端服务器之间的网络流量,减轻网络拥塞,同时还能减小数据传输延迟,提高用户访问速度。同时,当后端服务器宕机时,Nginx服务器上的副本资源还能够回应相关的用户请求,这样能够提高后端服务器的鲁棒性。

Nginx缓存实现原理

基于Proxy Store的缓存机制

01

404错误驱动

当Nginx服务器发现,用户请求数据在服务器本地不存在时,会产生404错误,服务器能够捕捉该错误,进一步转向后端服务器请求相关数据,最后将后端请求到的数据传回客户端,并在服务器本地缓存。

02

资源不存在驱动

原理上基本等同于404错误驱动,不同之处在于该方法是通过location块的location if条件判断直接驱动Nginx服务器和后端服务器的通信和Web缓存,而不对资源不存在产生404错误。

配置文件片段:

这两种缓存机制只能缓存200状态下的响应数据,同时不支持动态链接请求。比如:getsource?id=1和getsource?id=2这两个请求,返回的是相同的资源。所以实际上,一般是采用Nginx搭配Squid服务器架构实现方案。

基于memcached的缓存机制

memcached在内存中开辟一块空间,然后建立一个Hash表,将缓存数据通过键/值存储在Hash表中进行管理。memcached由服务端和客户端两个核心模块组成,服务端通过计算“键”的Hash值来确定键/值对在服务端所处的位置。当位置确定后,客户端就会向对应的服务端发送一个查询请求,让服务端查找并返回所需数据。

到这里,关于nginx服务器缓存的内容就暂时告一段落了,希望大家在这篇文章里都能有所收获。如果你有更好的想法,欢迎在评论区留言讨论哦~

本文分享自微信公众号 - 马哥Linux运维(magedu-Linux),作者:LifeIsButA_Span

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2017-04-28

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • MySQL/MariaDB数据库基于SSL实现主从复制

    前言 备份数据库是生产环境中的首要任务,重中之重,有时候不得不通过网络进行数据库的复制,由于MySQL/MariaDB的主从复制是明文传送的,如果在生产环境中跨...

    小小科
  • 《大型网站技术架构》读书笔记之六:永无止境之网站的伸缩性架构

    一、网站架构的伸缩性设计 01、不同功能进行物理分离实现伸缩 (1)纵向分离:将业务处理流程上得不同部分分离部署,实现系统的伸缩性; ? (2)横向分离:将不同...

    小小科
  • Linux DNS 服务器安装、配置和维护

    每个 IP 地址都可以有一个主机名,主机名由一个或多个字符串组成,字符串之间用小数点隔开。有了主机名,就不要死记硬背每台 IP 设备的 IP 地址,只要记住相...

    小小科
  • *当你在浏览器地址栏输入一个URL后回车,将会发生什么事情?*

    http://igoro.com/archive/what-really-happens-when-you-navigate-to-a-url/

    一半是我
  • 浏览器缓存机制浅析--HTTP缓存

    浏览器缓存机制,其实主要就是HTTP协议定义的缓存机制(如: Expires; Cache-control等)。但是也有非HTTP协议定义的缓存机制,如使用HT...

    Clearlove
  • 打开win服务器管理工具与Linux服务器的区别

    现如今服务器的运用很广泛,很多行业都需要使用服务器,市面上运用最多的服务器操作系统分为Linux系统和Windows系统,下面就来为大家介绍一下Linux服务器...

    it妹
  • SQL语句执行原理清空缓存的方法

    文章转载:原文地址 原理: 第一步:应用程序把查询SQL语句发给服务器端执行。 我们在数据层执行SQL语句时,应用程序会连接到相应的数据库服务器,把SQL语句发...

    Albert陈凯
  • 从敲入 URL 到浏览器渲染完成、对HTTP协议的理解

    浏览器引入了 DNS 预取技术。它是利用现有的 DNS 机制,提前解析网页中可能的网络连接。

    步履不停凡
  • 「查缺补漏」巩固你的HTTP知识体系

    这次梳理的篇幅主要是涉及网络部分,包括HTTP等,对巩固自己的网络知识体系也是很有帮助的,进一步的对性能优化而言也是帮助很大的。

    童欧巴
  • 大型分布式网站术语分析

    一、I/O优化 1、增加缓存,减少磁盘的访问次数。 2、优化磁盘的管理系统,设计最优的磁盘方式策略,以及磁盘的寻址策略,这是在底层操作系统层面考虑的。 3、设...

    琯琯

扫码关注云+社区

领取腾讯云代金券