开发者社区> 问答> 正文

【分享业务场景】日百万PV级页面秒开心得

bdplang 2014-12-09 16:51:34 18671

【分享业务场景】日百万PV级页面秒开心得
业务应用:ECS
业务场景:单一页面的高并发高速访问请求
使用服务器配置:ECS1核2G4M
遇到的问题:有限预算内处理高并发低流量请求所遇到的矛盾。
解决方案:ECS+CDN+阿里云解析+Incapsula


客户某业务提供对不良网站的过滤,即当用户访问到非法网站时立刻返回警告页面。一个看似简单的警告页面,由于用户遍布国内外,要实现国内外跨地区、跨运营商的秒开显示着实令我们费了一番功夫。


因为需要调用后台数据,此页面用PHP语言编写,因此无法直接将其存放到静态CDN中直接访问。初期,我们采用1台ECS服务器专门用于展示警告页面,但很快发现,随着业务量的快速上升,对ECS服务器的带宽消耗愈发严重,一味的升级带宽或上SLB超出了现有预算,遂将该页面的图片文件和js文件迁移至又拍第三方公众CDN服务,这样一来,大幅降低了对ECS服务器的带宽占用,在有限的预算内解决了大文件的流量消耗。


与此同时,该页面的PV量已攀升至百万级别且海外用户也日益增多,我们测试发现海外用户在访问此页面时存在较为严重的延迟现象,因警告页面的特殊性,如果不能瞬间显示则失去了意义。随后在原ECS存放PHP页面+国内三方CDN存放静态文件的基础上,通过阿里云解析的智能解析功能将海外访问请求CNAME至Incapsula的节点,借助Incapsula全球CDN节点实现海外的快速访问。


但好景不长,我们紧接着发现尽管该页面访问迅速但完全加载完毕却耗时较长,特别是海外用户访问更是如此,通过pingdom发现,原来起初为了减轻CDN流量压力,我们将该页面的图片\js等静态文件分别存放于多个第三方CDN中,导致用户访问时,需要多次解析这些CDN的域名,大量的时间被浪费在这里。遂立即把图片和js等从第三方静态CDN服务中撤下迁回至ECS,而后使用反代式WAF/CDN服务对该页面做全局CDN加速强制缓存静态文件,使原本需要5-6次DNS解析的过程缩短至只需解析一次即可全部加载完毕,现在尽管每天高达百万次的PV访问,但该页面依旧加载十分迅速,且面对高访问量也无需频繁升级带宽。


通过这次反复折腾,得到的心得:
1.尽量避免多个CDN混用。
2.不要忽视CDN域名的解析延迟,CDN域名的解析延迟往往有可能抵消掉其所带来的加速效果。
3.如果图片文件不多、不大就尽量杜绝把这些小文件单独放在第三方CDN上,可以直接放在服务器中,使用反代式CDN做全局加速。
4.充分利用阿里云解析等智能DNS解析服务结合cloudflare、Incapsula做海外加速。
暂时就说这么多吧。
各位可以通过http://tools.pingdom.com/fpt/测试一下你们的网站页面访问速度得分,并找出是哪里拖慢了页面的加载速度。


分享到
取消 提交回答
全部回答(23)
  • 绿色大虾
    2015-02-06 17:20:04
    Re【分享业务场景】日百万PV级页面秒开心得
    赞,文章不错,我也想搞个好的配置 ,大家看看我的站 速度如何,谢谢大家
    0 0
  • 值得买
    2015-02-05 10:30:12
    Re【分享业务场景】日百万PV级页面秒开心得
    4m百万pv???
    0 0
  • kideny
    2015-02-03 20:24:52
    顶一下,然后慢慢研究。
    0 0
  • ajane
    2015-02-02 13:09:46
    Re【分享业务场景】日百万PV级页面秒开心得
    学习学习
    0 0
  • w656755998
    2015-01-31 05:01:35
    Re【分享业务场景】日百万PV级页面秒开心得
    楼主好强大啊
    0 0
滑动查看更多
+ 订阅

时时分享云计算技术内容,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。

推荐文章