当前位置:首页 > 移动互联 > 使用 Varnish 优化移动端站点

使用 Varnish 优化移动端站点

admin 3年前 226 0

使用 Varnish 优化移动端站点 移动互联 第1张

文/公子肥马轻裘

想象一下:你刚刚发布了一篇博文,并分享到了社交网络。然后,这篇文章恰巧被大 V 看中再次分享了出去,立即吸引了数百粉丝的目光,引导他们涌入了你的网站。看到这么多的访客量,以及它们的评论,你内心激动不已。突然之间,你的网站挂掉了,满屏的数据连接错误……

或者假想另一种情景:你一直很努力地创业,某一天,一个大 V 在社交网络表达了对贵公司的喜爱之情,字里行间满满的赞叹。关注这个大 V 的粉丝心动了,又涌入了你的网站。不幸的是,点击连接后却无法进入你的网站,或者进入后无法注册用户,甚至页面响应超时,无法获取产品的序列号。尽管你在社交网络上对此非常诚恳地表达了歉意,但粉丝们都不会再有兴趣。

这些假想其实非常普遍。在我的工作中,就经常发现,当网站信息在社交网站流传开来的时候,移动设备的访问请求就会骤增。这也表明,在社交网络中,越来越多的人开始使用移动设备,而不是传统的桌面应用。此外,大多数的移动用户都在使用公共 Wi-Fi 以及其他低速网络来访问网站。所以,快速加载网站的任何优化措施,都会有利于用户的访问。

在本文中,我会向你介绍 Varnish 网页应用加速器(Varnish Web application accelerator)——这是一个免费、简单的工具,有助于改善大规模突发性访问状态下的响应能力。

亮点

对于大多数的网站来说,众多用户请求访问的核心内容大都是一致的——尤其是每天都会更新内容的门户网站。不用多说你也会理解,图片、CSS 和 JavaScript,这些静态资源往往有较长的缓存周期期(译者注:有利于在不同页面间复用)。但你可能没有深入思考过,通常在博客平台或者是内容管理系统中,响应用户的请求后,所返回的数据内容,大多也是相同的。

来自社交网络的用户进入一个博客后,并不会请求完全一致的信息。除了图片、JavaScript 和 CSS,这些信息还包括 PHP 动态生成的内容,以及从数据库查询到的数据。访问博客中的某一篇文章,所需要发送的每一条请求,不仅仅是在获取网络服务器提供的静态资源,还需要使用 PHP 脚本,使用数据库连接以及数据库表单检索等功能。

数据库连接的数量越多,Apache 需要处理的进程就会越多,而总的处理能力是有限的。相应的,访客的数量越多,服务就会越不稳定,挣到的钱就会越少。

这就是类似 Varnish 的 HTTP 反向代理服务器发挥作用的地方。如此一来,从浏览器发出的请求,不再直接到达创建和维护网页的服务器,而是到达 HTTP 缓存服务器。如果缓存服务器中存在所需页面,那么直接从服务器的内存返回相应的资源,不再动用 Apache 服务器和数据库。如果所需页面不在缓存中,那么就像传统方式一样,使用 Apache 服务器来处理。Apche 处理完成之后,就会将这个页面保存到 HTTP 缓存服务器中,等到下一次请求相同页面时就可以直接返回了。

将页面保存在内存中,其响应速度远快于将其保存在硬盘中。此外,当请求的页面位于 HTTP 缓存服务器中时,就无需调用 PHP 或者数据库来处理相关操作。这也让 PHP 和 服务器能够有更多的性能来处理更繁重的进程和连接。比如,上面提到的被大 V 称赞的那家初创公司面临的窘境,众多粉丝点击的链接其实只是网站中的少数几个页面——而这些完全可以保存在高速缓存服务器中,当需要时可以直接从内存响应请求。此时,准备注册的用户就会感到整个流程非常顺利,因为后台脚本和数据库连接的处理能力非常宽裕,完全不受突发性请求的影响。

原理

下面这个示意图,展示了 Apache 服务器响应请求后生成站点内容的基本流程。在这个例子中,为了请求相同的页面,一共从浏览器发送了五条指令给 Apache,而 Apache 对每条请求都做了详细的处理。

使用 Varnish 优化移动端站点 移动互联 第2张

是的,Apache 处理了每一条请求——图像,CSS,JavaScript 和 HTML 文件。如果 PHP 中有某个文件,就会解析一次。如果需要请求数据库的信息,那么就要执行一次数据连接,进行 SQL 查询等操作。最终,在 Apache 返回给浏览器信息之前,数据库返回相关信息组装成完整的页面。

如果我们在 Apache 之前使用 Varnish,就可以组成这样的一个流程:

使用 Varnish 优化移动端站点 移动互联 第3张

如果浏览器请求的资源和页面已经存在缓存中,那么 Varnish 就会直接从内存返回这些资源,而 Apache、PHP 和 MySql 完全不需要进行重复的操作。如果浏览器请求的数据不在缓存中,那么 Varnish 就会将相关的处理工作转移给 Apache,让 Apache 处理细节。这种流程的优势就在于,只让 Apache 处理必要的工作,一旦生成了所需的资源,该资源就会被保存到缓存服务器的内存中。当再次有请求访问这些资源时,Varnish 就完全有能力应付了。

这个工具还有另一项好处。在 Varnish 的术语中,你所配置的 Apache 服务器,被称为“处理后台”。Varnish 允许配置多个处理后台。所以,你可以同时运行两个网络服务器,比如,一台使用 Apache 处理 PHP 页面,一台使用 nginx 处理静态资源。在 Varnish 中设置成功后,就可以从正确的服务器获取相应的资源。在本篇教程中,我们将着眼于一个简单的示例。

发表评论
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

相关文章

关于女性创业 科技界的女神怎么给建议?

关于女性创业 科技界的女神怎么给建议?

    新浪科技讯5月21日消息,这也许是女性性别密度最大的一次论坛,昨日阿里巴巴筹办的女性论坛在杭州开幕,重点关注从IT到DT时代下的女性创业,大约有1000多名来自各个领域的代表女性...

摄影O2O崛起,你的婚纱照可以又好看又便宜

摄影O2O崛起,你的婚纱照可以又好看又便宜

从目前国内的传统摄影行业现状来看,整体情况并不是十分理想,出现了不少影楼、工作室倒闭的现象。传统影楼整体的不景气,既有内因也有外因,我们先来看看具体是什么原因导致了今天的影楼倒闭潮。...

央视国际起诉暴风影音侵权并索赔400万

央视国际起诉暴风影音侵权并索赔400万

央视国际起诉暴风影音侵权并索赔400万【TechWeb报道】4月17日消息,暴风影音未经自己授权转播“2014年巴西世界杯”,央视国际网络公司(以下简称央视国际)起诉索赔4...

马云与韩国青年谈创业

马云与韩国青年谈创业

    最近两天“马云旋风”刮到了韩国。继前天出席天猫韩国馆上线活动后,马云昨天在韩国副总理崔炅焕的陪同下做客韩国KBS电视台参加了一档对话访谈节目的录制。在录制现...

高校互联网创业新热土:消灭兼职“黑中介”

高校互联网创业新热土:消灭兼职“黑中介”

    摘要:黑中介什么的最让人讨厌了,虚假信息、拿钱跑路......继互联网租房之后,校园兼职市场也掀起了一股“去中介化”的互联网创业潮。  ...

OPPO F3 PLUS测评结果曝光

OPPO F3 PLUS测评结果曝光

 据外媒5月16日报道,今年3月23日,OPPOF3Plus在印度正式发售,其售价为30990卢比,约合人民币3325元。  资料图从目前曝光的数据来看,OPPOF3Plus采用6英...

申通中通等快递响应菜鸟网络:快件炒信将受罚

申通中通等快递响应菜鸟网络:快件炒信将受罚

新浪科技讯4月8日下午消息,继菜鸟网络出手重拳打击快递环节炒信之后,各快递公司也纷纷响应,开始内部自查强化管理,从物流环节协同菜鸟网络杜绝炒信。4月7日,菜鸟网络正式宣布在快递环节打...

斯诺登:为保争议岛安全 英国曾监视阿根廷领袖

斯诺登:为保争议岛安全 英国曾监视阿根廷领袖

资料图:爱德华·斯诺登中新网4月4日电据外媒3日报道,美国情报机构前雇员爱德华·斯诺登泄露的文件指出,英国在2006至2011年间对阿根廷军方和...