【《网络通信》杂志“实践应用”栏目2001年第2期】 用 NT server 4.0 实现 WWW 虚拟主机服务
现在,许多 ISP 商家通过向用户提供服务器硬盘空间租赁,来为客户建立 WWW 网站,
提供 Web 服务。如我公司曾协助某单位,在西安“古城热线”申请了50M 的租赁空间,并
为其制作主页,建立了 Internet 网站。
其实,如果您有一个海量硬盘(30G),您也可以在您的网站上为您的客户提供这种虚拟
Web 服务器。这种虚拟主机服务如果用在企业内部网上,则尤其显得经济实用,既节约了
硬件资源,又方便了网站的集中管理。
笔者曾在本单位的内部网上,用一台安装 windows NT server 4.0 的高档 PC 机,实
现了上述虚拟 Web 服务器,为 5 个部门提供 WWW 虚拟主机服务,效果很好。实现过程如
下:
1、为 NT 服务器设置多个 IP 地址:首先保证 NT 服务器的网络硬件安装和设置正确,
网络通信正常。双击 NT 服务器“控制面版”中的“网络”图标,选择“协议”标签,查
看TCP/IP通信协议的属性,弹出“TCP/IP 属性”设置窗口,单击窗口右下方的“高级”按
钮,出现“高级 IP 寻址”窗口,分别添加如下 IP 地址,子网掩码全为255.255.255.0:
192.168.0.96
192.168.0.97
192.168.0.98
192.168.0.99
192.168.0.100
按“确定”按钮分别关闭全部窗口后,重启动机器。这样,该 NT 服务器即同时拥有上述
5个 IP 地址,可用 Ping 命令进行检验。
2、设置 WWW 虚拟目录,并与对应的 IP 地址绑定:在 NT 服务器硬盘上开辟一个较大
的分区,建立5个文件夹。本例是在 E: 盘上建立文件夹www,再在其下建立以下5个文件夹:
www96,www97,www98,www99,www100
执行“开始/程序/Microsoft Internet Server(公用)/Internet 服务管理器”,出现
“Microsoft Internet service Manager”窗口,双击“ WWW 服务”,选择“目录”标签,
再按“添加”按扭,弹出“目录属性”窗口。在“目录属性”窗口中,按“浏览”按扭选中
文件夹“E:\www\www96”,点击单选按扭“主目录”,再选中“虚拟服务器”复选框,在
点分文本框中输入 IP 地址“192.168.0.96”,最后按“确定”按扭关闭以上窗口。这样,
IP 地址“192.168.0.96”就和文件夹“E:\www\www96”绑定在一起。同理设置其他虚拟目
录,并和其对应的IP 地址绑定。对应关系是:
E:\www\www97 文件夹对应 IP 地址192.168.0.97
E:\www\www98 文件夹对应 IP 地址192.168.0.98
E:\www\www99 文件夹对应 IP 地址192.168.0.99
E:\www\www100文件夹对应 IP 地址192.168.0.100
完成以上各步后,上述的5个虚拟主机就建好了。
3、上载主页,测试 Web 虚拟服务器:将制作好的主页拷贝到以上文件夹中,就能在网
络中用浏览器浏览了。(注意:NT 的 WWW 服务器初始安装后,网站的默认主文件为 default
.htm,一般应调整为 index.htm)
如,在浏览器的地址栏输入“http://192.168.0.96”后回车,应当能浏览到文件夹“E:
\www\www96”下放置的主页文件。
By zhangking@263.net 2000.6.25
【《大众网络报》2000.12.11 第 24 期 19 版】
用程序实现 WWW 虚拟服务器
当前较为常见的建立虚拟主机的方法是在 WWW 服务器的网卡上捆绑多个IP 地址,每个 IP 地址对应于一个虚拟 WWW 服务器。这种方法在 WindowsNT Server 4.0 上设置较为简单,但是其最大的缺点是要占用大量的 IP 地址。这个问题在企业内部网上也许不太明显,但在 IP 地址资源十分紧张的 Internet 上问题就非常突出了。
在微软最新发布的 Win2000 Server 中,这个问题已经解决,但对于目前仍在运行的,用 NT Server4.0 建立的大量的网站,该问题还依然存在。针对这种情况,笔者在 WindowsNT Server 上采用 ASP 编程进行域名翻译的方法,较好的解决了问题。采用这种方法,只占用一个 IP 地址就可以完成所有虚拟服务器的主页分发。
这种方法的实现过程是:将所有用户的域名全部解析到同一个 IP 地址上,再调用 ASP 程序将不同的域名进行“翻译”,转向到其对应的存放主页文件的目录中。这样,用户的域名就与 WWW 虚拟服务器上的对应的主页文件联系起来,完成了主页的访问。
笔者的 WindowsNT Server 4.0 安装了 SP4 和 OP4 ,支持 ASP 脚本的运行,还安装了 DNS 服务器,进行域名解析。然后,将 WWW 服务器的起始文件顺序设置为 index.asp 和 index.htm,WWW 服务器默认主目录下的 index.asp 文件的内容如下:
〈%
' 获得调用者的域名
theDNS=request.servervariables("server_name")
' 然后进行“翻译”和 URL 转向
Select case theDNS
case "www001.mydom.com.cn"
Response.redirect "www001"
case "www002.mydom.com.cn"
Response.redirect "www002"
case "www003.mydom.com.cn"
Response.redirect "www003"
case else
Response.write("Please use Domain Name visiting our web_site.〈br〉")
End select
%〉
笔者在这里对 3 个域名“www001.mydom.com.cn”“www002.mydom.com.cn”和“www003.mydom.com.cn”进行了解析,使它们都指向了笔者的虚拟主机服务器的 IP 地址。而“WWW001”“WWW002”和“WWW003”是 3 个域名分别对应的虚拟目录的别名(其中的主页文件为 index.htm),笔者的例子中其对应关系如下:
别名 WWW001 对应于 E:\VirtualDir\www001.mydom.com.cn
别名 WWW002 对应于 E:\VirtualDir\www002.mydom.com.cn
别名 WWW003 对应于 E:\VirtualDir\www003.mydom.com.cn
这样,当我们在浏览器的地址栏中输入 http://www001.mydom.com.cn 回车后,浏览器首先调用的是 WWW 服务器主目录下的 index.asp 文件,index.asp 文件获得调用者的域名后,然后进行“翻译”,将 URL 转向到 www001 虚拟目录中,再调用其中的 index.htm 文件。
在实际使用中,当然可以对更多的域名进行翻译转向,如果网站很大,还应考虑使用 Web 后台数据库保存和检索数据,以提高网站的效率。除过 ASP 编程外,这种方法还可以通过 CGI 编程的方法来实现,而且其通用性更广,可以在 WindowsNT 和 Linux 中几乎所有的 Web 服务器上实现。
2000 年 10 月 14 日 张 庆