如何进行网站性能优化

skyadmin 70 2022-10-22

如何进行网站性能优化

若何停止网站性能优化

如何进行网站性能优化

一、前端优化

网站性能优化是一个很综合的话题,触及到办事器的设置和网站前后端法式等每个方面,我只是从现实履历动身,分享一下自己所尝试过的网站性能优化方式。之所以在题目上挂一个web2.0,是由于本文更偏重于中小网站的性能优化,我所利用的系统也是典型web2.0的LAMP架构。

首先讲讲前真个优化,用户拜候网页的期待时候,有80%是发生在阅读器前端,出格是页面和页面中各类元素(图片、CSS、Javascript、 flash…)的下载之上。是以在很多情况下,相对于把大量的时候花在艰辛而复杂的法式改良上,前真个优化常常能起到事半功倍的感化。雅虎比来将内部利用的性能测试工具yslow向第三方公然,并公布了著名的网站性能优化的十三条法则,倡议你下载并安装yslow,并作为测评网站优化结果的工具。下面我挑其中出格有代价的具体说明一下优化的方式:

对于第一次拜候您网站,尚未在阅读器cache中缓存您网站内容的用户,我们大师可以做的工作包括:

1)削减一个页面拜候所发生的http毗连次数

对于第一次拜候你网站的用户,页面所发生的http毗连次数是影响性能的一个关键瓶颈。

对策:

- 只管简洁的页面设想,最洪流平削减图片的利用,经过放弃一些不需要的页面殊效来削减javascript的利用。

- 利用一些优化技能,比如操纵图片的布景位移削减图片的个数;image map技术;利用Inline images将css图片绑缚到网页中。

- 只管合并js和css文件,削减自力文件个数。

2) 利用gzip紧缩网页内容

利用gzip来紧缩网页中的静态内容,可以明显削减用户拜候网页时的期待时候(听说可到达60%)。支流的web办事器都支持或供给gzip紧缩,假如利用apache办事器,只需要在设置文件中开启 mod_gzip(apache1.x)或mod_deflate(apache2.x)即可。凡是静态的页面,利用gzip紧缩都可以明显进步办事器效力并削减带宽支出,留意图片内容自己已经是紧缩格式了,务必不要再停止紧缩。

3)将CSS放在页面顶端,JS文件放在页面底端

CSS的援用要放在html的头部header中,JS文件援用只管放在页面底端标签的前面,首要的思绪是让焦点的页面内容尽早显现出来。不外要留意,一些大量利用js的页面,能够有一些js文件放在底端会引发一些难以预感的题目,按照实在的情况适当应用即可。

4)使JS文件内容最小化

具体来说就是利用一些javascript紧缩工具对js剧本停止紧缩,去除其中的空缺字符、正文,最小化变量名等。在利用gzip紧缩的根本上,对js内容的紧缩可以将性能再进步5%。

5)只管削减内部剧本的利用,削减DNS查询时候

不要在网页中援用太多的内部剧本,首先,一次dns的剖析进程会消耗20-120毫秒的时候;其次,假如在页面中援用太多的内部文件(如各类广告、同盟等代码),能够会由于内部文件的响应速度而将你的网站拖得很慢。假如不能不用,那末就只管将这些剧本放在页脚吧。不外有一点需要说起,就是阅读器一般只能并行处置同一域名下的两个请求,而对于分歧子的域名则不受此限制,是以适当将本站静态内容(css,js)放在其他的子域名下(如 http://static.xxx.com)会有益于进步阅读器并行下载网页内容的才能。

对于您网站的经常性拜候用户,首要的优化思绪就是最大限度操纵用户阅读器的cache来削减办事器的开销。

1)在header中增加过期时候(Expires Header)

在header中给静态内容增加一个较长的过期时候,这样做才可以利用户此后拜候只读取缓存中的文件,而不会与办事器发生任何的交互。不外这样做也存在一些题目,当图片、CSS和js文件更新时,用户假如不革新阅读器,就没法获得此更新。这样,我们在对图片、css和js文件点窜时,必必要停止重命名,才能够正真的保证用户拜候到最新的内容。这能够会给开辟形成不小的麻烦,由于这些文件能够被站点中的很多文件所援用。flickr提出的处置方式是经过url rewrite使分歧版本号的URL究竟上指向同一个文件,这是一个聪明的法子,由于url级此外操纵效力是很高的,可以给开辟进程供给很多便当。

要了解为什么这样做,必必方法会阅读器拜候url时的工作机制:

a. 第一次拜候url时,用户从办事器段获得页面内容,并把相关的文件(images,css,js…)放在高速缓存中,也会把文件头中的expired time,last modified, ETags等相关信息也一同保存下来。

b. 用户反复拜候url时,阅读器首先看高速缓存中能否有本站同名的文件,倘使有,则检查文件的过期时候;假如尚未过期,则间接从缓存中读取文件,不再拜候办事器。

c. 假如缓存中文件的过期时候不存在或已超越,则阅读器会拜候办事器获得文件的头信息,检查last modifed和ETags等信息,假如发现当地缓存中的文件在上次拜候后没被点窜,则利用当地缓存中的文件;假如修悔改,则从办事器上获得最新版本。

我的经历,假如能够,只管遵守此原则给静态文件增加过期时候,这样做才可以大幅度削减用户对办事器资本的反复拜候。

2)将css和js文件放在自力内部文件中援用

将css和js文件放在自力文件中,这样它们会被零丁缓存起来,在拜候其他页面时可以从阅读器的高速缓存中间接读取。一些网站的首页能够是破例的,这些首页的本身阅读能够并不大,但却是用户拜候网站的第一印象以及导向到其他页面的起点,也能够这些页面自己利用了大量的ajax部分革新及技术,这时可以将 css和js文件间接写在页面中。

3)去掉反复的剧本

在IE中,包括反复的js剧本会致使阅读器的缓存不被利用,仔细检查一下你的法式,去掉反复援用的剧本应当不是一件很难的工作。

4)避免重定向的发生

除了在header中报酬的重定向之外,网页重定向常在不经意间发生,被重定向的内容将不会利用阅读器的缓存。比如用户在拜候,办事器会经过301转向到/,在前面加了一个“/”。假如办事器的设置欠好,这也会给办事器带来额外的负担。经过设置apache的 alias或利用mod_rewrite模块等方式,可以尽能够的避免不需要的重定向。

还有一些,比如利用CDN分发机制、避免CSS表达式等、避免利用ETags等,由于不太常用,这里就不再赘述了。

做完了上述的优化,可以试着用yslow测试一下网页的性能评分,一般都可以到达70分以上了。

固然,除了阅读器前端和静态内容的优化之外,还有针对法式剧本、办事器、数据库、负载的优化,这些更深条理的优化方式对技术有更高的要求。本文的后半部分将重点探讨后真个优化。

二、后端优化

前端优化可以尽能够的避免我们形成无谓的办事器和带宽资本浪费,但随着网站拜候量的增加,仅靠前端优化已经不能处理一切题目了,后端软件处置并行请求的才能、法式运 行的效力、硬件性能以及系统的可扩大性,将成为影响网站性能和稳定的关键瓶颈地点。优化系统和法式的性能可以从以下的方面来动手:

1)apache、mysql等软件的设置的优化

虽然apache和mysql等软件在安装后利用的默许设备足以使你的网站运转起来,可是经过调剂mysql和apache的一些系统参数,还是可以追求更高的效力和稳定性。这个范畴中有很多专业的文章和论坛(比如: ),要想把握也有需要停止深入的研讨和理论,这里就不重点会商了。

2)利用法式情况加速

这里仅以我最常利用的php开辟情况为例,有一些工具软件可以终极靠优化PHP运转情况来到达提速的目标,其根基道理大致是将PHP代码预编译并缓存起来,而不需要改变任何代码,所以最简单,可以将php的运转效力提升50%以上。比力常用的php加速工具有:APC( http: //http://pecl.php.net/package-info.php?package=APC)、Turck MMCache( )、php accelebrator(),还有免费的Zend Performance Suite

3)将静态内容和静态内容分隔处置

apache是一个功用完善但比力庞大的web server,它的资本占用根基上和同时运转的进程数呈反比,对办事器内存的消耗比力大,处置并利用命的效力也一般。在一些情况下,我们大师可以用比力轻量级的web server来host静态的图片、款式表和javascript文件,这样做才可以大大提升静态文件的处置速度,还可以大大削减对内存占用。我利用的web server是来自俄罗斯的nginx,其他挑选计划还包括lighttpd和thttpd等。

4)基于反向代理的前端拜候负载平衡

当一台前端办事器不敷以对付用户拜候时,经过前端机实现web拜候的负载平衡是最快速可行的计划。经过apache的mod_proxy能轻松实现基于反向代理的负载平衡,这里保举利用nginx做代理办事器,处置速度较apache更快一些。

5)利用缓存技术进步数据库效能,文件缓存和散布式缓存

数据库拜候处置并发拜候的才能是很多网站利用的关键瓶颈,在想到利用主从结构和多farm的方式构建办事器集群之前,首先应当确保充实利用了数据库查询的缓存。一些数据库范例(如mysql的innoDB)本身内置对缓存的支持,此外,还可经过法式方式将常用的查询经过文件或内存缓存起来。比如经过 php中的ob_start和文件读写函数可以很方便的实现文件形式的缓存,而假如你具有多台办事器,可以终极靠memcache技术经过散布式同享内存来对数据库查询停止缓存,不但效力高而且扩大性好,memcache技术在livejournal和http://Craigslist.org等著名网站利用中都获得了检验。

6)办事器运转状态的检测,找到影响性能的瓶颈地点

系统优化没有与日俱增的方式,需要经过检测办事器的运转状态来实时发现影响性能的瓶颈,以及能够存在的潜伏题目,由于网站的性能,永久取决于木桶中的短板。可以编写一些脚原本检测web办事的运转,也有一些开源的软件也供给了很好的功用

7)杰出的扩大架构是稳定和性能的根本

一些技能和窍门可以帮你度过眼前的难关,但要想使网站具有对付大范围拜候的才能,则需要从系统架构上停止完全的计划,幸亏很多前人无私的把他们架构同享出来

上一篇:企业网站如何进行网络推广更有效?
下一篇:网站如何做百度推广?怎么样把网站推广到百度首页?
相关文章

 发表评论

暂时没有评论,来抢沙发吧~