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 

  • 相关阅读:
    Linux 学习笔记1
    Openstack中的LoadBalancer(负载均衡)功能使用实例
    分析事务与锁3
    MemoryStream
    JBPM4学习之路2:流程部署
    在MongoDB中一起使用$or和sort()
    使用avalon msui绑定实现基于组件的开发
    深度剖析Byteart Retail案例:应用程序的配置
    最年轻的系统分析员的考试心得
    linux学习体会,献给初学者
  • 原文地址:https://www.cnblogs.com/wangxusummer/p/4503949.html
Copyright © 2011-2022 走看看