发布者: 上海开眼SEO优化
SEO优化中如何优化网站内的性能
一.前端优化
网站性能优化是一个非常全面的课题,涉及到服务器配置和网站前后端程序等方面,我只是从实际经验出发,来分享我所尝试的网站性能优化方法。在标题上挂一个web2.0的原因是本文更多地关注中小型网站的性能优化,而我使用的系统也是典型的web2.0灯架构。
首先,关于前端的优化,用户访问网页的等待时间,80%发生在浏览器的前端,特别是在页面和页面上的各种元素(图片,cjavascript,flash…)下载。因此,在许多情况下,前端优化通常有乘数效应相对于花费大量时间在艰难和复杂的程序改进。雅虎最近向第三方公布了内部性能测试工具yslow,并发布了著名的网站性能优化13条规则,建议您下载并安装yslow作为评估网站性能的工具。我将挑选一些最有价值的优化细节:
第一次访问站点时,那些尚未在浏览器缓存中缓存站点内容的用户可以做以下事情:
1.减少一页访问产生的http连接数
对于首次访问站点的用户来说,页面生成的http连接数量是影响性能的关键瓶颈。
答复:
最小化页面设计,最小化图像的使用,并通过放弃页面效果减少javascript的使用。
-使用一些优化技术,如利用图像的背景位移来减少图像的数量;使用图像AP技术;使用inli
-合并js和cs文件以减少独立文件的数量。
2.使用gzip压缩网页内容
使用gzip压缩网页中的静态内容可以显著减少用户访问网页时的等待时间(据说是60%)。主流Web服务器支持或提供gzip压缩,如果使用apache服务器,只需在配置文件中启动modgz(apache1.x)或moddefault(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)放在其他域名(mtatic.x.x.x)下将有助于提高浏览器并行下载Web内容的能力。
定期访问站点的主要思想是最大限度地利用用户浏览器缓存来减少服务器开销。
6.添加过期时间
在头部中为静态内容添加更长的过期时间,以便用户在未来只能访问缓存中的文件,而不需要与服务器进行任何交互。但是,这样做还有一些问题,当图像、css和js文件被更新时,用户不能在没有刷新浏览器的情况下获得更新。这样,当我们修改图像、css和js文件时,我们必须重命名它们以确保用户访问最新内容。这可能会给开发带来很多麻烦,因为这些文件可能被站点上的许多文件引用。flickr提出的解决方案实际上是通过urlr将不同版本的url指向同一个文件,这是一个聪明的方法,因为url级别高效,可以为开发过程提供很多便利。
要理解为什么要这样做,重要的是要理解浏览器在访问url时如何工作:
用户从服务器段获取页面内容,并将相关文件(图片、css、js和jellp)放入高内存中。
当u.l被重复读取时,浏览器首先查看在高速缓存中是否有一个名称相同的文件(如果有的话),检查文件的过期;如果没有过期,直接从缓存读取文件,不再访问服务器。
7.没设过期时间会怎样
如果服务缓存中没有存在或超过文件的过期时间,浏览器访问服务器头以获取文件,检查诸如lasdif和eta等信息,如果发现本地缓存中的文件在上次访问之后没有修改,则使用本地缓存中的文件;如果修改了,则从服务器获取最新版本。
如果可能的话,我的经验是遵循这个原则为静态文件添加过期时间,这可以大大减少用户对服务器资源的重复访问。
8.在单独的外部文件中引用css和js文件
将css和js文件保存在单独的文件中,以便在访问其他页面时可以单独缓存和直接从浏览器的缓存读取。除了主页外,有些网站可能没有多少自己的浏览功能,但是这是用户访问该网站的第一印象,也是使用大量aja部门刷新和技术导航到其他页面的能力,除了直接写在页面上的cs和js。
9.删除重复的脚本
在ie中,包含重复的js脚本会导致浏览器的缓存不被使用,仔细检查程序,删除引用的脚本不会困难。
10.避免重新定位
除了头文件中的重定向外,页面重定向往往不经意地发生,被重定向的内容不会使用浏览器缓存。例如,当用户访问时,服务器转到/通过301并在后面添加“/”。如果服务器配置不好,这也会给服务器带来额外负担。您可以通过配置apache的别名或使用mod重写模块来避免不必要的重定向。
还有其他事情,比如使用cdn分发机制,避免使用css表达式,避免使用etags等等,因为它们不常被使用,而且这不会重复。
在进行上述优化后,您可以尝试用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?apc,turcm
3.分离静态和动态内容
apache是一个功能齐全但规模较大的Web服务器,其资源占用与同时运行的进程数量基本成正比,消耗了服务器上大量的内存,并且处理并行任务的效率也是一般的。在某些情况下,我们可以使用重量较轻的Web服务器来拥有静态图像、样式表和javascript文件,这可以大大提高静态文件的处理速度,减少内存占用。我使用的是来自俄罗斯的nginx,其他选项包括lighttpd和thtpd。
4.基于反向代理的前端访问负载均衡
当前端服务器不足以处理用户访问时,通过前端服务器实现Web访问负载均衡是最快和可行的方案。基于反向代理的负载均衡可以通过apache的mod代理实现,建议使用nginx作为代理服务器,以便比apache更快地进行处理。
5.应用缓存技术提高数据库效率、文件缓存和分布式缓存
数据库访问并发访问能力是许多Web应用程序的关键瓶颈,在考虑使用主从结构和多农场构建服务器集群之前,应该确保数据库查询缓存得到充分利用。某些数据库类型,例如mysql的innodb,内置支持缓存,还可以使用程序方法通过文件或内存缓存常见查询。例如,php和php中的对象可以很容易地以文件的形式缓存,如果有多个服务器,则可以使用memcache技术使用分布式共享内存缓存数据库查询,不仅效率高,而且具有良好的可扩展性。
6.检测服务器运行状态,找出影响性能的瓶颈
系统优化没有一刀切的方法,这就要求通过检测服务器运行状态及时发现性能瓶颈和潜在问题,因为站点的性能总是取决于桶中的短板。您可以编写脚本来检测Web服务,一些开源软件提供了良好的功能
良好的扩展架构是稳定性和性能的基础
一些技巧和技巧可以帮助你渡过困难时期,但是如果你希望你的网站能够应付大规模访问,你需要一个彻底的系统架构。