优化收集网

您现在的位置是:首页 > 网站建设 > 主机运维

主机运维

Nginx与浏览器缓存的处理方法

云狐科技 2021-07-13 19:08:00主机运维

一、浏览器对缓存的处理:Internet选项c9m电脑_数码_手机应用问题解决的IT技术网站 - 优化收集网

★ 控制请求服务器策略:是忽略资源的缓存策略的情况下额外强制请求服务器的意思。c9m电脑_数码_手机应用问题解决的IT技术网站 - 优化收集网

★ 检查存储的页面较新版本c9m电脑_数码_手机应用问题解决的IT技术网站 - 优化收集网

1.每次访问网页时不管是否有缓存、资源状态是否过期,都会再次请求服务器。c9m电脑_数码_手机应用问题解决的IT技术网站 - 优化收集网
2.每次启动Internet Explorer时不管是否有缓存、资源状态是否过期,都会再次请求服务器。c9m电脑_数码_手机应用问题解决的IT技术网站 - 优化收集网
3.自动大体上和2是一样的,只是对于图片的策略有点不同。c9m电脑_数码_手机应用问题解决的IT技术网站 - 优化收集网
4.从不完全按照资源的缓存策略来请求服务器。c9m电脑_数码_手机应用问题解决的IT技术网站 - 优化收集网

★ F5 刷新:请求服务端,但是会根据和服务器对比文件来确定是否下载c9m电脑_数码_手机应用问题解决的IT技术网站 - 优化收集网

★ Ctrl + F5刷新:一定会去服务器下载。c9m电脑_数码_手机应用问题解决的IT技术网站 - 优化收集网

二、缓存控制策略c9m电脑_数码_手机应用问题解决的IT技术网站 - 优化收集网

★Last-Modified/If-Modified-Since要配合Cache-Control使用,Etag/If-None-Match也要配合Cache-Control使用。c9m电脑_数码_手机应用问题解决的IT技术网站 - 优化收集网

ps: 分布式系统里多台机器间文件的last-modified必须保持一致,以免负载均衡到不同机器导致比对失败c9m电脑_数码_手机应用问题解决的IT技术网站 - 优化收集网

分布式系统尽量关闭掉Etag(每台机器生成的etag都会不一样)c9m电脑_数码_手机应用问题解决的IT技术网站 - 优化收集网

★HTML通过meta的http-equiv属性控制浏览器缓存策略:通过设置Pragma和Cache-control和expires控制c9m电脑_数码_手机应用问题解决的IT技术网站 - 优化收集网

ps:只能控制html的缓存策略,不能控制css/js/图片的缓存策略。c9m电脑_数码_手机应用问题解决的IT技术网站 - 优化收集网

Cache-control的max-age和expires同时存在,那么先处理max-age。c9m电脑_数码_手机应用问题解决的IT技术网站 - 优化收集网
Cache-control指定了no-cache后,max-age和expires。c9m电脑_数码_手机应用问题解决的IT技术网站 - 优化收集网
Pragma: http 1.0 IE浏览器才识别,请求头中不会体现,但是确实有效果c9m电脑_数码_手机应用问题解决的IT技术网站 - 优化收集网
Cache-control: http 1.1c9m电脑_数码_手机应用问题解决的IT技术网站 - 优化收集网

三、Nginx设置浏览器缓存c9m电脑_数码_手机应用问题解决的IT技术网站 - 优化收集网

 ★Nginx设置浏览器缓存:可以在http 、server、location节点中添加。可以设置各种资源的缓存策略,不仅仅是HTML。而<meta http-equiv>节点只针对HTMLc9m电脑_数码_手机应用问题解决的IT技术网站 - 优化收集网

1c9m电脑_数码_手机应用问题解决的IT技术网站 - 优化收集网
2c9m电脑_数码_手机应用问题解决的IT技术网站 - 优化收集网
3c9m电脑_数码_手机应用问题解决的IT技术网站 - 优化收集网
4c9m电脑_数码_手机应用问题解决的IT技术网站 - 优化收集网
5c9m电脑_数码_手机应用问题解决的IT技术网站 - 优化收集网
6c9m电脑_数码_手机应用问题解决的IT技术网站 - 优化收集网
7c9m电脑_数码_手机应用问题解决的IT技术网站 - 优化收集网
8c9m电脑_数码_手机应用问题解决的IT技术网站 - 优化收集网
9c9m电脑_数码_手机应用问题解决的IT技术网站 - 优化收集网
10c9m电脑_数码_手机应用问题解决的IT技术网站 - 优化收集网
11c9m电脑_数码_手机应用问题解决的IT技术网站 - 优化收集网
12
#add_header Cache-Control no-cache;c9m电脑_数码_手机应用问题解决的IT技术网站 - 优化收集网
  #add_header Cache-Control private;c9m电脑_数码_手机应用问题解决的IT技术网站 - 优化收集网
  add_header Cache-Control max-age=7200;c9m电脑_数码_手机应用问题解决的IT技术网站 - 优化收集网
  if ($request_filename ~* ^.*?\.(ico|jpeg|gif|jpg|png|woff)$){c9m电脑_数码_手机应用问题解决的IT技术网站 - 优化收集网
    expires 7d;c9m电脑_数码_手机应用问题解决的IT技术网站 - 优化收集网
  }c9m电脑_数码_手机应用问题解决的IT技术网站 - 优化收集网
  if ($request_filename ~* ^.*?\.(js|css)$){c9m电脑_数码_手机应用问题解决的IT技术网站 - 优化收集网
    expires 7d;c9m电脑_数码_手机应用问题解决的IT技术网站 - 优化收集网
  } c9m电脑_数码_手机应用问题解决的IT技术网站 - 优化收集网
  if ($request_filename ~* ^.*?\.(html|htm)$){c9m电脑_数码_手机应用问题解决的IT技术网站 - 优化收集网
    expires 3d;c9m电脑_数码_手机应用问题解决的IT技术网站 - 优化收集网
  }

★Nginx中的配置会覆盖HTML的http-equiv="Cache-control"配置。c9m电脑_数码_手机应用问题解决的IT技术网站 - 优化收集网

但是如果HTML中的加了下面3个标签,浏览器端效果还是只能no-cache。(从效果上来看:Nginx的Cache-control配置无效)c9m电脑_数码_手机应用问题解决的IT技术网站 - 优化收集网

因为Nginx的Cache-control配置只是覆盖了Cache-control(如果html加的是后面两个标签,Nginx还是有效的),而Pragma仍然起着作用。c9m电脑_数码_手机应用问题解决的IT技术网站 - 优化收集网

1c9m电脑_数码_手机应用问题解决的IT技术网站 - 优化收集网
2c9m电脑_数码_手机应用问题解决的IT技术网站 - 优化收集网
3
<meta http-equiv="Pragma" content="no-cache"/> c9m电脑_数码_手机应用问题解决的IT技术网站 - 优化收集网
  <meta http-equiv="Cache-control" content="no-cache;max-age=0"/> c9m电脑_数码_手机应用问题解决的IT技术网站 - 优化收集网
  <meta http-equiv="expires" content="0"/>

总结c9m电脑_数码_手机应用问题解决的IT技术网站 - 优化收集网

以上所述是小编给大家介绍的Nginx与浏览器缓存的处理方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对云狐网站的支持!c9m电脑_数码_手机应用问题解决的IT技术网站 - 优化收集网