化简为繁——优化你的网站层次

/*

############################################################################

#本文原作者: Litrin Jiang

#原文出处:www.litrin.net

#如需转载,请注明出处,谢谢!

############################################################################

*/

什么是层次?

史力克:就像洋葱。

当奇:为什么是洋葱,为什么不是泡芙?

史力克:因为洋葱有层次!!

常见的网站层次:

  1. 一层结构:

结构非常简单,只支持服务器端静态页面,网页文件数据直接从服务器硬盘中读出,经过www服务器传输给浏览器。

  1. 两层结构:

支持服务器端动态页面,页面文件经过处理后通过服务器传输给浏览器。最常见的3大页面语言:aspiisphp(php+apache) jsp(tomcat).

  1. 最常用的3层结构:

这就比较完善了,数据流程:数据库->脚本解释->www服务器->浏览器。常见的IIS+sql(access) LAMP Tomcat+oracle等等一系列的经典搭配全都是说的这三层结构。

  1. 几种变种:

多数据库结构,多用于数据库端负荷较重的场合,将数据库分开存放,减轻负担。同时可使用数据库同步技术或者负载均衡技术(其实使用负载均衡逻辑上应该只算一台数据库)。

ps: 传说网易采用了2个数据库专门负责写数据,4个数据库专门负责读数据,中间采用数据同步技术保持数据同步。

放在这里将有点牵强,其实这不能算作服务器技术,而应该算作页面技术,多见于门户网站的论坛——将页面做成框架,通过cookies同步数据。如果要保持同步,笔者曾经听说过http server技术,但没有采用过。

页面缓存、缓冲技术

  1. 客户端缓存:

似乎没有什么好解释的:设定页面过期时间,客户端的浏览器就会自动缓存的。

  1. 动转静”缓存:

原理就是将动态的网站转换成静态,从而达到减轻服务器负担和加速优化的目的。其转换出来文件名类似于*****-*****.html或者类似的,有些类似于***,***,***,*.html用“,”隔开的其实是传递的地址变量。具体生成这些文件的软件大多都是商业软件,如果哪位朋友发现有开源的产品,麻烦告诉我,在此感谢!

  1. 逆向代理缓存:

类似于http代理上网的原理,不过将他倒了过来,反向代理,本站也介绍过相应的配置方法,这种方法其实很常用,blogchina.com也用了类似的技术。(原先曾经有人问过我如何看出采用采用了页面缓冲,其实只要看它的http头,类似于“Server: squid/2.5.STABLE7”的就是了,看,版本号都有!)据我所知现在主要通过squid做缓冲,市面上也有所谓的网站加速器之类的硬件产品,实际上就是一个类似的嵌入产品。

PS:如果是采用了动态生成的页面,还要在脚本中稍加修改,具体方法烦请察看站内相关内容。

  1. 代理+缓存:

这个就比较高级了,结合了以上2者的特点,适合于超大规模的网站,一般用不到。

  1. 变种:

通过欺骗或者使用ip隧道技术使缓冲服务器代理或者访问本地的www服务器的方式达到访问目的。(主要通过修改本地主机信息)

负载均衡

  1. 基于域名的负载均衡:

原理类似于抽奖——准备多个IP,对应同一个域名。每做一次域名解析就随即返回一个IP,这无形中就等于将网站的访问量分摊给了多个主机,减少了单一节点的局限。具体判断方法是,nslookup命令返回的是多个ip地址

  1. 基于集群的负载均衡:

  2. 4层交换:

anyShare分享到:
          

,

  1. No comments yet.
(will not be published)
*