深度揭秘「Web前端性能优化(2)CDN加速和反向代理」cdn模式cdn的理解
CDN加速
CDN(Contect Distribute Network,内容分发网络)的本质仍然是一个缓存,而且将数据缓存在离用户最近的地方,使用户最快速度获取数据,所谓网络访问第一跳,如图1所示。
图1
由于CDN部署在网络运营商的机房,这些运营商又是终端用户的网络服务器提供商,因此用户请求路由的第一跳就到达了CDN服务器,当CDN中存在浏览器请求的资源时,从CDN直接返回给浏览器,最短路径返回响应,加快用户访问速度,减少数据中心负载压力。
CDN能够缓存的一般是静态资源如图片、文件、CSS、Scriptj脚本、静态网页等,但是这些文件访问频度很高,将其缓存在CDN可极大改善网页的打开速度。
反向代理
传统代理服务器位于浏览器一侧,代理浏览器将HTTP请求发到互联网上,而反向代理服务器位于网站机房一侧,代理网站Web服务器接受HTTP请求。如图2
图2
和传统代理服务器可以保护浏览器安全一样,反向代理服务器也具有保护网站安全的作用,来自互联网的访问请求必须进过代理服务器,相当于Web服务器和可能的网络攻击之间建立一个屏障。
除了安全功能,代理服务器也可以通过配置缓存功能加速Web请求。当用户第一次访问静态内容的时候,静态内容就被缓存在反向代理服务器上,这样当其他用户访问该静态内容的时候,就可以直接从反向代理服务器返回,加速Web请求响应速度,减轻Web服务器负载压力。事实上,有些网站会把动态内容也缓存在代理服务器上,比如维基百科及某些博客论坛网站,把热门词条、帖子、博客缓存在反向代理服务器上加速用户访问速度,当这些内容有变化时,通过内部通知反向代理缓存失效,反向代理会重新加载最新的动态内容再次缓存起来。
此外,反向代理也可以实现负载均衡的功能,而通过负载均衡构建的应用集群可以提高系统总体处理能力,进而改善网站高并发情况的性能。
深度揭秘「Web前端性能优化(2)CDN加速和反向代理」cdn模式cdn的理解