开发者社区> 问答> 正文

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

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

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

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

展开
收起
a123456678 2016-06-24 11:58:47 2666 0
1 条回答
写回答
取消 提交回答
  • nginx反代在网站上使用,一般是为了做负载。就缓存上来讲,在代理单位的存储上保存请求目标的内容,加快响应速度,减少应用单位上的资源开销,比如多客户端请求相同的资源,代理缓存命中后,对于应用服务器来说,只发生了一次资源调度。

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

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

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

    2019-07-17 19:46:50
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
React Native 全量化实践—web 技术打造移动研发新模式 立即下载
CentOS Nginx PHP JAVA 多语言镜像使用手 立即下载
CentOS Nginx PHP JAVA多语言镜像使用手册 立即下载