预渲染技术在内容分发网络(cdn)中的应用研究(附件)【字数:13229】

摘 要当前,模型-视图-控制器 (Model View Controller,MVC)架构主要有后端MVC和前端MVC两种模式。后端MVC依赖服务器性能,需要消耗大量服务器资源进行渲染。前端MVC技术在浏览器端进行视图渲染,搜索引擎爬虫并不会执行页面中的JavaScript,难以对网页内容进行抓取,导致网站搜索引擎优化(SEO)情况不容乐观。为了解决前端MVC站点的搜索引擎优化问题,国内外很多研究者都进行了研究和尝试,提出一些解决方案。目前国外主要解决思路是在搜索引擎爬取时获取对目标页面进行渲染,渲染完成后将页面发送给搜索引擎爬虫。对于网站所有者来说,部署相对较为复杂,且速度较慢,影响搜索引擎权重,并不是一个理想的解决方案。 本文基于现有的预渲染技术与CDN技术进行结合,解决使用前端MVC架构之页面的搜索引擎优化问题,为前端MVC的提供一个通用且最优的解决方案。由于服务于CDN上进行部署,该服务对终端用户、网站完全透明,除却基本的CDN设置操作外,无需进行任何配置,也不会干扰网站的正常运行,相较于传统的预渲染解决方案而言,具有优势。在架构上,创新性的采用了异步、非阻塞的方式,提出了被动式爬虫的概念,通过流量的被动式监听抓取目标链接。在部署方案上,研究了低成本的分布式部署以及云计算环境下的大规模部署方案。目前国内外尚无这样的解决思路。在系统实现后,对其进行了完整的功能测试。使用AB性能测试工具对系统进行了大流量、高并发的压力测试,模拟了产环境下的性能压力。在性能测试中,系统平均每秒可以对5034.47个请求进行处理,达到并超出了预期的性能要求。
目 录
第一章 绪论 1
1.1 项目背景 1
1.2 国内外相关研究发展 1
1.3 研究内容和目标 1
1.4 论文组织结构 2
1.5 相关技术简介 3
1.5.1 前端MVC 3
1.5.2 预渲染技术 3
1.5.3 内容分发网络 3
1.5.4 消息队列 4
第二章 预渲染CDN方案设计 5
2.1 需求分析 5
2.1.1 功能需求分析 5
2.1.2 环境需求 5
2.1.3 性能需求  *好棒文|www.hbsrm.com +Q: ^351916072* 
5
2.2 系统架构设计 5
2.3 反向代理模块设计 6
2.4 被动爬虫模块设计 7
2.5 预渲染节点设计 9
2.6 爬虫请求处理模块设计 10
2.7 数据库设计 10
2.8 本章小结 11
第三章 预渲染CDN系统实现 12
3.1 反向代理实现 12
3.2 被动爬虫实现 13
3.3 预渲染节点实现 14
3.4 爬虫请求处理服务实现 15
3.5 本章小结 15
第四章 系统部署方案 16
4.1 预渲染节点分布式部署方案 16
4.2 预渲染节点集群式部署方案 16
4.3 本章小结 18
第五章 系统运行及测试分析 19
5.1 系统运行与测试环境 19
5.2 功能性测试与结果分析 19
5.2.1 预渲染任务添加测试 19
5.2.1 预渲染页面读取测试 20
5.3 性能测试用例设计 21
5.4 本章小结 22
结束语 23
致 谢 24
第一章 绪论
1.1 项目背景
随着科技的发展,互联网已经完全融入到人类生活的方方面面中,改变了一代人的行为与思维模式。随着网络浏览器的诞生,1993年人类进入了WEB1.0时代[1]。此时的网页以静态页面为主。页面如同传统报刊一般,被网站管理者编辑、上传。2005年[2]开始,以分享、聚合、社群、开放为核心的WEB2.0时代到来。人们发现静态页面已经无法满足人们的需求,于是在WEB中引入了各种各样的程序语言,进入了动态网页的时代。2017年,距离WEB2.0概念被提出已经过去了整整13个年头。后WEB2.0时代敏捷开发、快速迭代成为了开发界的主流[3],MVC(Model View Controller,模型-视图-控制器)架构兴起,在传统的后端MVC的基础上,开发者利用AJAX(Asynchronous JavaScript And XML,AJAX)技术实现了前端MVC。前端MVC技术的兴起,涌现出了AngularJS 、Backbone.js 和 Ember.js等优秀的开源前端MVC框架。这些框架借助Ajax技术,后端无需完成渲染工作,实现了服务器端静态内容与动态内容的完全分离,后端开发者只需要关心数据模型与控制器的开发,程序开发流程变得更为简洁。然而由于前端MVC技术的出现,网页内容依赖于JavaScript的执行来渲染,搜索引擎爬虫在抓取网站时,不会执行网页中的JavaScript,无从获取内容,导致网站的搜索引擎优化(Search Engine Optimization)情况不容乐观。而搜索引擎无法收录的直接后果是,用户难以通过搜索引擎检索到该站的信息,网站失去了主要的流量来源。对于依赖于搜索引擎流量导入的中小型网站来说,这是一个致命性的打击。
1.2 国内外相关研究发展
针对前端MVC站点的搜索引擎优化问题,国内外很多研究者都进行了研究和尝试,提出一系列的解决方案。
作为性能强大的V8 JavaScript引擎的开发者,Google发布了一个针对前端MVC框架使用者的开发指南,其中对前端MVC框架的使用进行了规范,以便于Google通过爬虫与JavaScript引擎进行页面收录。然而这种方式不仅增加了开发者的时间成本,且仅仅适用于Google的爬虫,不符合我国国情。
既然大多数搜索引擎无法很好的解决这个问题,开发者如何进行“自救”呢?国外主流解决方案主要是采用预渲染技术。解决思路是在搜索引擎爬取时获取目标页面进行渲染,渲染完成后将页面发送给搜索引擎爬虫。对于网站所有者来说,部署相对较为复杂,且速度较慢,严重影响搜索引擎权重,并不是一个理想的解决方案。
1.3 研究内容和目标
本文基于现有的预渲染技术与CDN技术,对二者进行结合,并在此基础上对架构进行创新,旨在解决使用前端MVC架构之页面的搜索引擎优化问题,为前端MVC的提供一个通用解决方案。由于服务于CDN上进行部署,该服务对终端用户、网站完全透明,除却基本的CDN设置操作外,无需进行任何配置,也不会干扰网站的正常运行,相较于传统的预渲染解决方案而言,具有优势。在架构上,创新性的采用了异步、非阻塞的方式,提出了被动式爬虫的概念。目前国内外尚无这样的解决思路,推出后可以节省用户大量时间成本,潜力极佳。

版权保护: 本文由 hbsrm.com编辑,转载请保留链接: www.hbsrm.com/jsj/wljs/35.html

好棒文