江门网站建设网站性能怎么优化?

1前端优化 网站性能优化是一个非常全面的课题,涉及到服务器配置和网站的前端和后端程序。我只是从实际经验出发,分享一下我尝试过的网站性能优化方法。我之所以把web2.0放在标题上,是…

1前端优化

网站性能优化是一个非常全面的课题,涉及到服务器配置和网站的前端和后端程序。我只是从实际经验出发,分享一下我尝试过的网站性能优化方法。我之所以把web2.0放在标题上,是因为本文更关注中小型网站的性能优化。我使用的系统也是典型的web2.0lamp架构。

我来谈谈前端的优化。80%的用户访问网页的等待时间发生在浏览器的前端,尤其是页面和各种元素(图像、CSS、Javascript、flash等)的下载。因此,在很多情况下,与花费大量时间在艰巨复杂的程序改进上相比,前端优化往往可以起到事半功倍的作用。雅虎最近向第三方发布了内部性能测试工具yslow,并发布了著名的13条网站性能优化规则。建议您下载并安装yslow作为评估网站优化效果的工具。让我挑一个最有价值的,具体解释一下优化方法:

对于首次访问您的网站但尚未在浏览器缓存中缓存网站内容的用户,我们可以做的事情包括:

1) 减少页面访问生成的http连接数

对于首次访问您的网站的用户,页面生成的http连接数是影响性能的关键瓶颈。

对策:

-尽量简洁的页面设计,尽量减少图片的使用,通过放弃一些不必要的页面效果来减少javascript的使用。

-使用一些优化技术,例如使用图片的背景位移来减少图片的数量;imagemap技术;使用Inlineimages将css图片捆绑到网页中。

-尝试合并js和css文件以减少独立文件的数量。

2) 使用gzip压缩web内容

使用gzip压缩网页中的静态内容可以显著减少用户访问网页的等待时间(据说可以达到60%)。主流web服务器都支持或提供gzip压缩。如果使用apache服务器,则只需在配置文件中启用mod_gzip(apache1.x)或mod_deflate(apache2.x)。对于所有静态页面,使用gzip压缩可以显著提高服务器效率并减少带宽开销。请注意,图像内容本身已经是压缩格式,因此请确保不要再次压缩它。

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

CSS引用应该放在html的头部,JS文件引用应该尽可能放在页面底部的标记之后。主要思想是尽快显示核心页面内容。但需要注意的是,对于一些大量使用js的页面,有些js文件可能会在底层造成一些不可预知的问题,您可以根据实际情况适当使用。

4) 最小化JS文件的内容

具体来说,使用一些javascript压缩工具来压缩js脚本、删除空白字符、注释以及最小化变量名。在使用gzip压缩的基础上,js内容的压缩可以再提高5%的性能。

5) 尽量减少外部脚本的使用并减少DNS查询时间

不要在网页中引用太多的外部脚本。首先,一个dns解析过程将花费20-120毫秒;其次,如果您在页面中引用了太多的外部文件(如各种广告、分支代码等),则由于外部文件的响应速度,您的网站可能会很慢。如果你必须使用它,试着把这些脚本放在页脚。但需要指出的是,浏览器一般只能并行处理同一域名下的两个请求,不同的子域不受此限制,因此本网站的静态内容(css、js)应该适当地放在其他地方。在子域名下(如static.xxx.com网站)将有助于提高浏览器并行下载web内容的能力。

对于经常使用您的网站的用户,主要的优化思想是最大限度地使用用户的浏览器缓存,以减少服务器开销。

▫ ▫

1) 在标头中添加过期时间(ExpiresHeader)

为头中的静态内容添加更长的过期时间,这样用户就只能在以后的访问中读取缓存中的文件,而无需与服务器进行任何交互。然而,这也存在一些问题。更新图像、CSS和js文件时,如果用户不刷新浏览器,则无法获得此更新。这样,当我们修改图片、css和js文件时,我们必须对它们进行重命名,以确保用户可以访问最新的内容。这可能会给开发带来很多麻烦,因为这些文件可能会被站点上的许多文件引用。flickr提出的解决方案是通过urlrewrite使不同版本号的url指向同一个文件。这是一个聪明的方法,因为url级别的操作效率非常高,可以为开发过程提供很多便利。

要理解这样做的原因,有必要了解浏览器在访问URL时的工作机制:

a、 当用户第一次访问url时,用户从服务器部分获取页面内容并将相关文件(图片、css、js…)放入缓存中,并将expiredtime、lastmodified、ETag等放入文件头中。信息也会保留下来。

b、 当用户在浏览器中反复访问同一个网址时,会先检查该文件是否与该网址相同。如果有,则检查文件的过期时间;如果文件尚未过期,则直接从缓存中读取文件,而不访问服务器。

c、 如果缓存中文件的过期时间不存在或已超过,浏览器将访问服务器获取该文件的头信息,检查lastmodifed和etag等信息,如果发现本地缓存中的文件自上次访问以来没有被修改过,则使用本地缓存中的文件;如果它已被修改,最新版本从服务器获得。

以我的经验,如果可能的话,尽量按照这个原则给静态文件增加过期时间,这样可以大大减少用户对服务器资源的重复访问。

2) 将css和js文件放在独立的外部文件中以供参考

将css和js文件放在不同的文件中,这样它们将被单独缓存,并且在访问其他页面时可以直接从浏览器的缓存中读取。一些网站的主页可能是例外。浏览这些主页可能不是很好,但它们是用户访问网站的第一印象,也是通向其他页面的起点。也有可能这些页面本身使用了很多ajax部分刷新和技术,此时,可以直接在页面上编写css和js文件。

3) 删除重复脚本

在IE中,包含重复的js脚本将导致浏览器的缓存无法使用。仔细检查你的程序。删除重复的脚本应该不难。

4) 避免重定向的发生

除了页眉中的人工重定向外,网页重定向经常会在不经意间发生,重定向后的内容将不会使用浏览器的缓存。例如,当用户访问时,服务器会重定向到/通过301,并在末尾添加“/”。如果服务器配置不好,也会给服务器带来额外的负担。通过配置apache的别名或使用mod_rewrite module和其他方法,可以避免不必要的重定向。

还有一些,比如使用CDN分发机制,避免CSS表达式等,避免使用etag等,因为它们不常用,所以这里就不重复了。

完成以上优化后,可以尝试使用yslow测试网页的性能得分,一般可以达到70分以上。

当然,除了优化浏览器前端和静态内容外,还对程序脚本、服务器、数据库和加载进行了优化。这些更深层次的优化方法对技术提出了更高的要求。本文的后半部分将重点讨论后端的优化。

第二,后端优化

在上次写了web2.0网站前端优化文章之后,我一直想写后端优化方法。今天我终于有时间理清我的想法了。

前端优化可以防止对服务器和带宽资源造成不必要的浪费。然而,单靠优化网站流量并不能解决所有问题。后端软件处理并行请求的能力、程序运行效率、硬件性能和系统的可扩展性将成为影响网站性能和稳定性的关键瓶颈。优化系统和程序性能可以从以下几个方面着手:

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

虽然安装后apache和mysql使用的默认设置已经足够让您的网站运行,但是您仍然可以通过调整mysql和apache的一些系统参数来追求更高的效率和稳定性。这个领域有很多专业的文章和论坛(如:),需要深入的研究和实践来掌握,所以我不在这里集中讨论。

2) 应用环境加速

以下是我经常使用的PHP开发环境作为示例。有一些工具和软件可以优化PHP运行时环境以实现速度。基本原理大致是在不更改任何代码的情况下预编译和缓存PHP代码。因此它相对简单,可以使PHP的运行效率提高50%以上。更常用的php加速工具是:APC(http://pecl.php.net/package-info.php?package=APC)、TurckMMCache()、phpaccellator()和收费的ZendPerformanceSuite

3) 将静态内容与动态内容分开

Apache是一个功能齐全但相对较大的web服务器。它的资源占用基本上与同时运行的进程数成正比。服务器内存消耗相对较大,处理并行任务的效率也一般。在某些情况下,我们可以使用一个相对轻量级的web服务器来托管静态图像、样式表和javascript文件,这样可以大大提高静态文件的处理速度,减少内存使用。我使用的网络服务器是来自俄罗斯的nginx。其他选项包括lighttpd和thttpd。

4) 基于反向代理的前端访问负载均衡

当前端服务器不足以处理用户访问时,通过前端机器进行web访问的负载平衡是最快可行的解决方案。基于反向代理的负载平衡可以通过Apache的mod_代理来实现。建议使用nginx作为代理服务器,它的处理速度比Apache快。

5) 应用缓存技术提高数据库性能、文件缓存和分布式缓存

数据库访问处理并发访问的能力是许多网站应用的关键瓶颈。在考虑使用主从结构和多场来构建服务器集群之前,您应该首先确保充分利用数据库查询缓存。一些数据库类型(比如mysql的innoDB)内置了缓存支持。此外,还可以使用程序方法通过文件或内存缓存频繁使用的查询。例如,通过php中的obüu start和file读写函数,可以轻松实现基于文件的缓存。如果您有多台服务器,您可以通过memcache技术通过分布式共享内存缓存数据库查询,这不仅效率高而且可扩展性好,memcache技术已经在livejournal和Craigslist.org网站以及其他知名网站应用程序。

6) 检测服务器运行状态,找出影响性能的瓶颈

系统优化没有一劳永逸的方法。由于网站的性能往往取决于桶里的缺点,因此通过检测服务器的运行状态,及时发现性能瓶颈和潜在问题是十分必要的。您可以编写一些脚本来检测web服务的运行情况,一些开源软件也提供了很好的功能

7)良好的扩展结构是稳定性和性能的基础。

一些技巧可以帮助你度过目前的困难,但如果你想让网站具备应对大规模访问的能力,就需要从系统架构上进行周密的规划

作者: guangdongseo

为您推荐

发表评论

电子邮件地址不会被公开。 必填项已用*标注

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部