在上篇博文中,我们已经利用IIS搭建好了一台Web服务器,并可以成功访问IIS中自带的默认站点,那么我们是否可以在这台服务器中再创建另外一个Web站点?也就是说,在一台Web服务器中是否可以同时存在多个网站呢?
答案当然是肯定的,其实很多中小企业的网站都是从网上租用的空间,提供空间租用的Web服务器里就同时存在了很多个网站。
但是当多个网站同时存在于一台服务器里时,就必须得有一种方法能够将它们区分开,这种方法也就是虚拟主机技术。

有三种方法可以实现虚拟主机技术:

  • 利用不同的IP地址
  • 利用不同的端口号
  • 利用不同的主机名(域名)

也就是说,只要让不同的网站在IP地址、端口号、主机名这三项中有一项是不相同的,那么这些网站就可以共存了。

下面分别来介绍这三种虚拟主机技术。

1. 使用不同IP地址架设多个网站

这种方法是为每个网站设置一个不同的IP,要采用这种方式首先需要Web服务器安装有多块网卡,每块网卡使用不同的IP。如果web服务器中只有一块网卡,那么也可以给这一块网卡绑定多个IP地址。打开本地连接,在TCP/IP属性的“高级”设置中,为服务器再添加一个IP地址192.168.0.15,如下图所示。

下面我们在【IIS管理器】中再新建一个Web站点。
在IIS管理器中选择“网站”,然后在右侧的“操作”面板中选择“添加网站”。
“网站名称”可以随意设置,这里用ytvc。
“物理路径”也就是网站的主目录,这里设置为c:\ytvc。
网站的协议类型仍为http,IP地址使用192.168.1.15,端口号80。

网站创建好之后,在其主目录中也存放一个名为Default.htm的网页文件,这样在客户端输入不同的IP地址便可以访问相应的网站。

这种方式在实际应用中很少采用,因为如果服务器使用的是公网 IP,那么公网IP地址是非常宝贵的资源,而这种方式无疑是要浪费大量的IP地址。

2. 使用不同TCP端口架设多个网站

这种方法是让每个网站仍然使用相同的 IP地址,但给不同的网站分配不同的端口号。如默认网站仍然使用默认的80端口,ytvc网站则将端口改为8000。
首先将刚才在本地连接中添加的第二个 IP删掉,然后在【IIS管理器】中选中ytvc网站,点击右侧“操作”面板中的“绑定”链接,将IP仍然设为192.168.1.5,将端口设置为8000。

 这样客户端在访问默认网站的时候,仍然可以通过URLhttp://192.168.1.5”的形式访问,而如果要访问ytvc网站,则端口号就不能省略,必须要使用“http://192.168.1.5:8000形式的URL。
但这时客户端无法访问ytvc网站,这是因为web服务器上的防火墙将发往TCP8000端口的数据自动过滤掉了,可以暂时关闭防火墙进行测试,或是在防火墙中增加一条入站规则。
打开防火墙的高级设置,新建一条入站规则,要创建的规则类型选择“端口”。

指定规则应用于TCP 8000端口。

对满足条件的操作允许连接。

在所有的网络上全部应用该规则。

为规则随意起一个名称。

入站规则创建好之后,在客户端就可以用8000端口正常访问ytvc网站了。

采用这种方式,客户端在访问网站时必须要在网址后面加上相应的端口号,而用户是不可能去记住每个网站的端口号的,所以这种方式在实践中也很少采用。

3. 使用不同主机头名架设多个网站
主机头名实际上就是每个网站的网址,也就是它的 FQDN名,所以要利用该方法首先需要在DNS服务器中添加相应的区域和主机记录。下面在DNS服务器里创建一个名为ytvc.com.cn的区域,然后在其中添加一条名为“www”的主机记录,对应的IP地址是192.168.1.5。(如果没有DNS服务器,也可以通过修改客户机的hosts文件进行域名解析。)
然后我们为 ytvc网站设置主机名www.ytvc.com.cn,并将其端口号该回80。

然后再将默认网站的主机名设置为www.coolpen.net

这样客户端就可以通过输入不同的网址以访问不同的网站,这也是实际中最经常采用也是最为推荐的一种方式,但采用这种方式就无法通过IP地址来访问相应的网站了(实际中的很多网站都是可以用网址访问,但无法用IP地址访问。)