Thinking ...

记录所见,所思,所悟...

导航

二级域名转发程序实现原理(一)——服务器部分 [转]

二级域名程序的实现其实很简单,很多人不明白其中原理,觉得很深奥或者很迷茫。下面我来讲将二级域名的实现原理。

    功能服务:首先来分析一下二级域名程序所有提供的服务。就是我们来通过国际域名moocky.net,提供诸如abc.moocky.net的域名转发到目的的网站(网址)。这就是二级域名程序所要实现的功能。

    虚拟主机:
    随着Web服务器的发展,也有原来的一台服务器上只能建立一个Web站点,发展到现在可以建立虚拟主机更加成熟的WebServer。当然这个也和浏览器的发展是分不开的。大家在访问一个站点的时候比如http://www.moocky.net,浏览器首先连接http://www.moocky.net这个网站所对应的服务器,然后再把主机头(也就是域名,http://后面到第一个[/]反斜杠之间之间的部分)给服务器,服务器接收到主机头之后,然后再返回所对应的站点的内容。这也就是基于名称的虚拟主机的原理,当然基于IP的虚拟主机的原理就是通过IP地址来判断相应的Web站点。个默认站点,就是当基于IP的虚拟主机找不到所对应的IP、基于名称的虚拟主机找不到对应的名称是所有访问的站点,就是默认站点了。当然这个也为我们实现域名转发提供可能。

    范解析和范绑定:
    什么是范解析?比如:我有一个moocky.net的国际顶级域名,那么我需要将“任意字符.moocky.net(*.moocky.net)”,解析到一个固定的ip,如果我们要一个一个的去做那当然是不可能实现的了,那范解析就是用来做这个的。现在的大多数域名注册商都有提供泛解析(也就是大家通常说的范域名解析)。
    什么是范绑定?上面刚刚讲了虚拟主机的实现原理,那么范绑定也就是一个范域名到对应站点的一个实现过程。比如刚刚我已经做了*.moocky.net的范解析,接下来要做的就是让*.moocky.net指向到我的站点(注意同一个IP上也可能有很多个主机);对于基于IP的虚拟主机,那我可以告诉你“恭喜你,你不用再作范绑定了。”(为什么呢,自己多想想),但是对于基于名字的虚拟主机要做范绑定,恐怕就是不是人人都知道了。不同的Web服务器范绑定是不同的,我就简单得说一下我所知道的:

Apache的范绑定:

<VirtualHost 
    ServerAdmin webmaster@moocky.net
    DocumentRoot "/home/moocky/wwwroot"
    ServerName www.moocky.net
    ServerAlias *.moocky.net
    ErrorLog /home/moocky/error_log
    CustomLog /home/moocky/access_log common
</VirtualHost>

    据我目前所知IIS、TomCat不能绑定范域名(如果你知道怎么绑定请你告诉我一下),但这并不是说IIS、Tomcat就不能实现二级域名程序,别忘了我们还有基于IP的虚拟主机和一个默认站点呢。虽然不能想范绑定那样可以为所有站点都做到,但至少可以勉强实现。

    到此,有关二级域名程序实现原理的服务器部分就算是讲完了,不知道你能否明白。

posted on 2005-11-13 10:33  barry  阅读(592)  评论(0编辑  收藏  举报