技术开发 频道

优化Web站点资源措施



【IT168 专稿】

雅虎除了用《Web站点优化基本原则》一文中的一些基本原则之外,现在我们看看雅虎还推荐的另外一些什么措施,并且看看这些优化措施如何供我们使用。
使用内容交付网络(Content Delivery Network
一个内容交付网络就是一个网路服务器,在不同的地理位置。每个服务器有一个站点文件的副本。当一个网站访问者浏览你的网站,发送一个请求,这个文件就会传送到离访问者最近的那个服务器上。
这个设置对你的总体性能有一个很大的改观,但是,使用内容交付网络是非常昂贵的。同样地,在你做个人博客的时候是不会采取这种方式的,但是,当你的客户想让你构建一个站点,这个站点会有很大的访问量的时候,那么这就很有用了。一些非常著名的内容交付网络提供商有AkamaiAmazon, 通过它的S3服务。
市场上有一些非盈利的CDN提供商;看看关于CDN Wikipedia文章 了解你的项目是否有资格来使用他们中的一些。举个例子,一个免费的对等CDN是 了解你的项目是否有资格来使用他们中的一些。举个例子,一个免费的对等CDN是Coral CDN,它能非常容易的整合你的站点。对于这个CDN来说,你只需要一个URL和追加一个"nyud.net"后缀到主机名后即可。下面就是一个例子:
http://example.org/logo.png
变成
http://example.org.nyud.net/logo.png
 
拥有不同的域且减少DNS查找
当用户浏览器已经下载了一个页面的HTML,发现还需要许多的其它页面成分,因此又开始下载那些页面成分了。但是浏览器限制同时下载的数量,如HTTP/1.1规范里说的,每个域同时下载的资源(asset)是2个。
因为这个限制存在于每个域的基础上,你能使用结果域来持有你的站点资源,这样就增加了能平行下载的数量了。许多共享主机会允许你创建子域。除非你的主机设置了你能创建的子域的数目(一些限制你最大数目为5),如果没有那么严重,就是你不想利用那么多的子域来看看性能是如何得到显著提升的。
但是,如规则 #9 所述,你应该减少DNS查找的次数,因为这些也是花销很大的。对于那些持有页面资源的每个域和子域,浏览器需要做一个DNS查找。因此你的域越多,你的网站因为DNS的查找就会变得很慢了。雅虎的搜索引擎建议2到4个域是非常好的的选择,但是你可以设置自己觉得你站点最好的数目。
就总的知道方针来说,我建议你使用一个域来持有HTML页面,另外两个持有你的非HTML代码资源。下面就是一个例子:
  • www.sitepoint.com – 持有HTML代码(或者内容图片)
  • i1.sitepoint.com – 持有JS, CSS, 和其它 图片
  • i2.sitepoint.com – 持有网站大多数的图片
不同的主机提供上应该提供不同的界面来创建子域,较为理想的情况他们还应该提供一个选项来指定目录,为子域保存文件。举个例子,如果你的标准域是www.sitepoint.com,并且它指向/home/sitepoint/htdocs目录,那么在理想的情况下,你应该可以创建子域i1.sitepoint.com(要么通过管理控制面板或者通过在文件系统创建符号链接),并且可以指向同样的文件夹,/home/sitepoint/htdocs。这样的话,你能保持所有的文件在同一个位置,正如它们都在你的开发环境中一样,都是在同一个位置的,使用一个子域来引用它们。
但是,一些主机有可能会阻止你创建子域,或者限制你指向文件系统中的特定地点。在这种情况下,你唯一的选择就是位置站点资源到一个新的位置。在这种情况下,不要试着创建重定向,这只会让情况变得更糟糕,因为对于每个图像来说创建了两个请求。
如果你的主机提供上根本不允许创建子域,你就可以有选择购买更多的域,纯粹使用这些域来持有你的站点资源,毕竟,这就是大多大型网站采取的办法。雅虎,使用yimg.com,Amazon有images-amazon.com,SitePoint有sitepointstatic.com。如果你自己有几个站点,或者管理你客户的一大群站点,你或许应该考虑购买两个域,比如说yourdomain-i1.com 和yourdomain-i2.com,使用这些域来持有你维护所有站点的组成成分。

0
相关文章