• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >编程问答 > nginx反向代理和nginxweb服务器的缓存有什么区别?

nginx反向代理和nginxweb服务器的缓存有什么区别?

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-06-07

佚名通过本文主要向大家介绍了nginx web服务器,nginx web服务器配置,nginx搭建web服务器,nginx web,nginx web server等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题:nginx反向代理和nginx web服务器的缓存有什么区别?
描述:

在代理和web服务器上面做了缓存设置,有什么区别?

浏览器的缓存是浏览器自己设置存储的,还是服务器要求浏览器存储的?

我认为在代理上面做缓存是为了拿一些数据不用去后面的服务器,直接在代理上面拿。减轻后面服务器的压
力,但是我想不通在服务器上面做缓存是为什么了?还是说这个缓存设置是为了让浏览器缓存?
求一些nginx理论文档。


解决方案1:

代理不保存数据,可以代理一个缓存服务器,如memcache
缓存是保存数据,下次请求会读取缓存。
就nginxweb缓存来说,有几个意思,一个可能类似memcache缓存,对nginx来说就是一个代理。也有可能指nginx使用缓存模块,缓存在nginx所在服务器硬盘中。

解决方案2:

1.浏览器的缓存是自己设置的,服务器只能在http返回头上给浏览器一些“提示”,比如说,设置内容的过期时间,设置Etag,或者设置no-cache,至于缓不缓存,还是看浏览器自己的实现;
2.nginx设置的缓存,应该都是把静态的内容(或者伪静态的,首页之类的)以特定文件名,存到特定区域,可以设定过期时间,如果hit了缓存,要么给客户端返回304(不是第一次请求),要么直接不请求后面的web服务器,把内容传给客户端;
3.web服务器的缓存,个人理解,更多的是指数据库查询之类的缓存吧,或者是模板的编译缓存

解决方案3:

nginx反代在网站上使用,一般是为了做负载。就缓存上来讲,在代理单位的存储上保存请求目标的内容,加快响应速度,减少应用单位上的资源开销,比如多客户端请求相同的资源,代理缓存命中后,对于应用服务器来说,只发生了一次资源调度。

而web服务器上的缓存配置,一般来说是用来减少本地IO的,请求目标的内容会存放在客户端本地。

比如web设置了内容过期的timespan(max-age=31536000或者Expires:<UTCDateString>,这样的header,注意Expires头是http1.0的东西,如果客户端支持1.1只用写Cache-Control: max-age就可以了,这些可以翻阅RFC文档再配合各浏览器厂商来决定),那下一次请求如果没有内容没过期,浏览器是不会发起任何请求的,直接读取本地的缓存数据;

而内容过期后,浏览器会发起请求,如果web端给设置过LastModified或者是Etag,请求的时候就会带上这些特征,用于web服务器对资源进行比对,如果内容没有发生变化,那么就会告诉你304状态,浏览器还是读取缓存数据。


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • nginx反向代理和nginxweb服务器的缓存有什么区别?

相关文章

  • 2017-06-07 (flask)object__setattr__和直接设置属性有什么不同吗?
  • 2017-06-07 python如何倒入OPENCV库
  • 2017-06-07 (flask)uwsgi的这个什么错?
  • 2017-06-07 php用laravel写的开源商城系统,大家有推荐吗?
  • 2017-06-07 (python)网站在注册时向用户邮箱发送的确认链接是如何生成的,又是如何确定用户的?
  • 2017-06-07 (python)lxml中xpath获取本节点及以下所有节点的text方法?
  • 2017-06-07 wget和curl各有何用处?强大但是不知如何使用
  • 2017-06-07 任务管理器已被系统管理员停用iterm怎么默认就开启管理员权限
  • 2017-06-07 python爬虫python字典格式化字符串的问题
  • 2017-06-07 Mac如何开机自启动httpd,查看httpd状态的命令

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • Python-Sphinx的这种rst语法叫做什么自定义??
    • 如何对同一时间段内的数据错乱排序
    • (python)pypi如何安装twine并上传包呢,是Mac系统。
    • ruby中do关键字的用法
    • 请教golang写一个爬小说的爬虫
    • 去除有序列表中的重复元素
    • 身份认证审核wise019@163com
    • 使用javasdk断点续传
    • pythontime函数返回的一个又像对象,又像元祖的东西是什么鬼?
    • (flask)object__setattr__和直接设置属性有什么不同吗?

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有