zoukankan      html  css  js  c++  java
  • CDN 缓存策略(转)

          1.CDN加速原理
          通过动态域名解析,网友的请求被分配到离自己最快的服务器。CDN服务器直接返回缓存文件或通过专线代理原站的内容。
          网络加速+内容缓存,有效提供访问速度
      2.CDN节点数量
          全国多个机房,每个机房多台服务器,CDN节点一般上百台
      3.CDN缓存什么内容
        缓存html、图片、css、xml等静态资源,不缓存含有?的动态地址、jsp、php,js文件也不缓存【除非特殊设置】
        缓存原站返回HTTP状态为20*或304,不缓存其他状态(例如404,500,503)
      4.CDN缓存内容的更新
        a)用户首次请求,CDN从原站抓取后缓存,直到文件过期后有用户请求再次更新
        b)程序主动通知CDN抓取
      5.CDN缓存内容的有效期
        a)原站apache吐出的静态文件:由apache的expire和header模块控制
          主要两项:last-modified,cache-control:max-age
          apache缺省配置,所有静态文件在cdn只缓存3600s【需要我们按需求调整被加速服务器的apache设置】
          3600s后cdn失效,用户访问时会重新请求原站,如果没有变化,缓存失效周期自动延长10%。
         b)原站jsp或php吐出的动态内容(url形式必须是静态的)
          由程序控制last-modified,cache-control:max-age public ,apache的设置将不起作用
          cdn根据这两项判断是否需要到原站更新内容
      6.CDN和应用的结合策略
        a)变化不频繁的页面:例如图吧的图片显示页、车型页、已结束的比赛对阵页
          在原站生成静态页面,原站apache上定义过期时间,例如1天。
          原站上静态文件更新后,可以等待cdn过期。或者主动通知cdn更新(随着cdn节点越来越多,代价会非常高)
        b)变化频繁的页面:例如足球库中的及时亚盘、及时欧赔、正在进行的比赛对阵页
          不生成静态页面,由jsp或php定义过期时间,例如5s或60s。cdn过期后,如果有用户访问就从原站上抓取。
          优点:相关页面内容更新后,不需要主动通知100个原站都来抓取,有效降低原站的压力。
          如果页面内容没有变化,返回lastmodified不变,这样原站会直接返回304给cdn,cdn也会返回304给用户。减少网络传输和速度
          比赛结束后,“正在进行的比赛对阵页”转换为第一类情况,再生成静态文件
        c)特殊静态资源:例如图片库和某些大型产品库中的评论js
          或者频繁访问、频繁更新的页面:例如足球赛事库的及时比分文件
          通过apache nocache告诉IE不缓存,html中就不需要使用pinglun.js?123456这样的代码形式
          然后用max-age告诉cdn缓存1s,这样避免每次用户请求都转到原站

    转自:http://bbs.tianya.cn/post-no110-440054-1.shtml 

  • 相关阅读:
    HDU 3572 Task Schedule(拆点+最大流dinic)
    POJ 1236 Network of Schools(Tarjan缩点)
    HDU 3605 Escape(状压+最大流)
    HDU 1166 敌兵布阵(分块)
    Leetcode 223 Rectangle Area
    Leetcode 219 Contains Duplicate II STL
    Leetcode 36 Valid Sudoku
    Leetcode 88 Merge Sorted Array STL
    Leetcode 160 Intersection of Two Linked Lists 单向链表
    Leetcode 111 Minimum Depth of Binary Tree 二叉树
  • 原文地址:https://www.cnblogs.com/wangxusummer/p/4503949.html
Copyright © 2011-2022 走看看