Skip to content

见识多子域名的好处

2008年6月11日

今天在新浪博客上传了一大堆的图片,然后自己看的时候显示效果还算好。但是不管是在教育网还是网通的网络都会有几张不能显示。

起初怀疑是图片上传出了问题,后来确认不是。再仔细看了一下,发现新浪是将图片存在不同的服务器上的,初步判断是随机挑选服务器。各服务器使用不同的二级域名,域名如下http://staticXX.photo.sina.com.cn,我遇到的XX从1到16,意味着最少有16台这样的服务器。

其实这样做有其坏处,比如域名解析需要大量的时间,且有服务器连接不上的话这台服务器上的图片就不能显示出来。

但是,这样做的好处会比坏处更大。首先,目前IE除8以外,其他版本的均只支持同时从1个域名并发两个请求,即最多同时可以在一台服务器上请求两张图片,再通俗一点,就是说最多只能同时下载两张,要下载第三张就必须等两张中的一张下载完毕。(其实不止图片,网页文件本身,以及相关的JS文件,CSS文件等等都受此限制。)因此,使用多个服务器可以大大地增加并发数量,加快图片显示的速度。另一方面,多个服务器出现同时不能连接的可能性较小,因此即使网络不好,也会有一部分图片显示出来。(我现在的情况就是这样。)

好像以前采用这种方式的网站并不很多,最多只是根据内容的不同区分不同的服务器,但现在很多网站都考虑到了并发的问题,采用了多域名。典型的像校内就是,它根据内容的不同区分了不同的服务器,例如登录后就是home.xiaonei.com,好友页面是friend.xiaonei.com,分享页面是share.xiaonei.com等等。同时相同内容的例如上传的附件也是随机存储在很多服务器上的。

这样的构架确实不错,但是技术含量应该也是很高的。这其中涉及到域名的分配问题,多服务器的数据共享,以及WEB服务器与数据服务器通讯等等一系列问题。当然,作为专用的图片服务器,还会涉及到关于图片存储、处理、读取等问题(反向代理好像用得很多)。限于资金问题,还没有玩过独立的服务器,更没有接触过多服务器之间的数据处理问题,只看过一些文章,因此也只能做上述分析,更细的东西在亲自接触过之后应该会有很多心得。

那么对于小网站,没有资本做多服务器的能得到些什么启示呢?首先,多域名同样是可用的,即把多个域名绑定到一台主机上,然后在网站显示的时候请求不同的域名。其次,可以对图片或者其他文件进行优化,例如在一定限度内进行压缩处理,以加快传输。再者,就只能在网页制作技术上下工夫了,尽量减少服务器的负担,使之能稳定运行,当然,这里面还涉及到用户的体验问题,无法再空泛地讨论,因此打住。