IIS下的虚拟目录如何做端口映射

IIS下的虚拟目录如何做端口映射,第1张

IIS(Internet Information Server,互联网信息服务)是一种Web(网页)服务组件,其中包括Web服务器、FTP服务器、NNTP服务器和SMTP服务器,分别用于网页浏览、文件传输、新闻服务和邮件发送等方面,它使得在网络(包括互联网和局域网)上发布信息成了一件很容易的事。本文将向你讲述Windows 2000高级服务器版中自带的IIS 5.0的配置和管理方法。

准备篇 IIS的添加和运行

一、IIS的添加

请进入控制面板,依次选添加/删除程序添加/删除Windows组件,将Internet信息服务(IIS)前的小钩去掉(如有),重新勾选中后按提示 *** 作即可完成IIS组件的添加。用这种方法添加的IIS组件中将包括Web、FTP、NNTP和SMTP等全部四项服务。

二、 IIS的运行

当IIS添加成功之后,再进入开始程序管理工具Internet服务管理器以打开IIS管理器,对于有已停止 字样的服务,均在其上单击右键,选启动来开启。

第一篇 IIS之Web服务器

一、建立第一个Web 站点

比如本机的IP地址为192.168.0.1,自己的网页放在D:\Wy目录下,网页的首页文件名为Index.htm,现在想根据这些建立好自己的Web服务器。

对于此Web站点,我们可以用现有的默认Web站点来做相应的修改后,就可以轻松实现。请先在默认 Web站点上单击右键,选属性,以进入名为默认Web站点属性设置界面。

1.修改绑定的IP地址:转到Web站点窗口,再在IP地址后的下拉菜单中选择所需用到的本机IP地址192.168.0.1。

2.修改主目录:转到主目录窗口,再在本地路径输入(或用浏览按钮选择)好自己网页所在的D:\Wy目录。

3.添加首页文件名:转到文档窗口,再按添加按钮,根据提示在默认文档名后输入自己网页的首页文件名Index.htm。

4.添加虚拟目录:比如你的主目录在D:\Wy下,而你想输入192.168.0.1/test的格式就可调出E:\All中的网页文件,这里面的test就是虚拟目录。请在默认Web站点上单击右键,选新建虚拟目录,依次在别名处输入test,在目录处输入E:\All后再按提示 *** 作即可添加成功。

5.效果的测试:打开IE浏览器,在地址栏输入192.168.0.1之后再按回车键,此时就能够调出你自己网页的首页,则说明设置成功!

二、添加更多的Web站点

1.多个IP对应多个Web站点

如果本机已绑定了多个IP地址,想利用不同的IP地址得出不同的 Web页面,则只需在默认Web站点处单击右键,选新建站点,然后根据提示在说明处输入任意用于说明它的内陆迹容(比如为我的第二个Web站点)、在输入Web站点使用的IP地址的下拉菜单处选中需给它绑定的IP地址即可(如图1);当建立好此Web站点之后,再按上步的方法进行相应设置。

图片附件: 1.gif (2005-9-23 10:43, 22.41 K)

2.一个IP地址对应多个Web站点

当按上步的方法建立好所有的Web站点后,对于做虚拟主机,可以通过给各Web站点设不同的端口号来实现,比如给一个Web站点设为80,一个设为81,一个设为82……(如图2),则对于端口号是80的Web站点,访问格式仍然直接是IP地址就可以了,而对于绑定其他端口号的Web站点,访问时必须在IP地址后面加上相应的端口号,也即使用如 http://192.168.0.1:81 的格式。

图片附件: 2.gif (2005-9-23 10:43, 34.07 K)

很显然,老神改了端口号之后使用起来就麻烦些。如果你已在DNS服务器中将所有你需要的域名都已经映射到了此惟一的IP地址,则用设不同主机头名的方法,可以让你直接用域名来完成对不同Web站点的访问。

比如你本机只有一侍悉亏个IP地址为192.168.0.1,你已经建立(或设置)好了两个Web站点,一个是 默认Web站点,一个是我的第二个Web站点,现在你想输入www.enanshan.com 可直接访问前者,输入www.popunet.com 可直接访问后者。其 *** 作步骤如下:

(1)请确保已先在DNS服务器中将你这两个域名都已映射到了那个IP地址上;并确保所有的Web站点的端口号均保持为80这个默认值。

(2)再依次选默认Web站点右键属性Web站点,单击IP地址右侧的高级按钮,在此站点有多个标识下双击已有的那个IP地址(或单击选中它后再按编辑按钮),然后在主机头名下输入www.enanshan.com 再按确定 按钮保存退出

图片附件: 3.gif (2005-9-23 10:43, 43.94 K)

(3)接着按上步同样的方法为我的第二个Web站点设好新的主机头名为 www.xxxx.com 即可。

(4)最后,打开你的IE浏览器,在地址栏输入不同的网址,就可以调出不同Web站点的内容了。

3.多个域名对应同个Web站点

你只需先将某个IP地址绑定到Web站点上,再在DNS服务器中,将所需域名全部映射向你的这个IP地址上,则你在浏览器中输入任何一个域名,都会直接得到所设置好的那个网站的内容。

三、对IIS服务的远程管理

1.在管理Web站点上单击右键,选属性,再进入Web站点窗口,选择好IP地址。

2.转到目录安全性窗口,单击IP地址及域名限制下的编辑按钮,点选中授权访问以能接受客户端从本机之外的地方对IIS进行管理;最后单击确定按钮。

3.则在任意计算机的浏览器中输入如 http://192.168.0.1:3598 (3598为其端口号)的格式后,将会出现一个密码询问窗口,输入管理员帐号名(Administrator)和相应密码之后就可登录成功,现在就可以在浏览器中对IIS进行远程管理了!在这里可以管理的范围主要包括对Web站点和FTP站点进行的新建、修改、启动、停止和删除等 *** 作。

四、本部分常见问题解答

Q:在上文中所涉及到的网址中,有的加了http:// ,有的没加,这意味着什么呢?

A:没有加 http:// 部分的网址,说明其可加可不加;而加了http:// 部分的,则说明它必不可少!对于带端口号的网址则必须加;否则可省略。

Q:对于上文中涉及到IP地址的网址,可否用比较友好的名称来代替呢?

A:可以!它除了能够用IIS服务器所在的计算机名来代替之外,还可在DNS服务器中新建域名和相应IP地址的映射表,就也可以用域名来进行访问了!

Q:我设置好了一个Web服务器,但是当我访问网页时,却出现密码提示窗口。这是为什么?

A:访问Web站点时,出现密码提示窗口,一般来说有以下原因,请逐个去进行检查:

1.所访问的网页文件本身加了密。比如默认Web站点原主目录E:\Inetpub\wwwroot下的首页文件iisstart.asp访问时就需要密码。

2.没有设置允许匿名访问或作了不应该的改动。如图4所示,首先应确保已勾选中了匿名访问这一项;并且其下编辑中 匿名用户帐号中用户名一项应为IUSR_NODISK(其中NODISK为计算机名)的格式;另外,还需要已勾选中允许IIS控制密码一项。

图片附件: 4.gif (2005-9-23 10:43, 42.78 K)

3.你的目标目录被限制了访问权限。此项仅当该目录位于NTFS格式分区中时才可能出现。请在其上单击右键,选属性,再进入安全窗口,看列表中是不是默认的允许Everyone组完全控制的状态,如不是,请改回

IIS常见问题及解答

(IIS问题专家Brett Hill提供了这些答案)

1. 我怎样对IIS设置进行备份?

2. 什么工具能帮助我施加一个负载并进行应用程序的强度测试?

3. 当Localstart.asp返回了一个“正在创建中”响应时,发生了什么事情?

4. 能在Microsoft Windows XP Home Edition中安装IIS或PWS吗?

5. ISAPI筛选器能在一个单独的进程空间中运行吗?

6. 我在哪能获得这样的示例代码--它显示了如何在使用WebDAV的ASP中编辑文档?

7. 当我试图用ASP去访问一个数据库时,我得到了一个“拒绝访问”的回应,这是什么原因?

8. 如何在没有恢复原始设置的情况下运行IIS锁定工具?

9. 在我的intranet环境中,如何处理“server-side include”语法,而不必重新命名所有的文件?

10. 在Windows 2000 Professional中,我怎样做才能让域用户来管理虚拟目录,以便域用户能够创建和管理他们自己的虚拟目录?

问: 我怎样对IIS设置进行备份?

答: 有多种方法可以用来完成此项工作。在Internet信息服务管理器控制台(IIS插件)中所设置的属性和值都被储存在Metabase.bin文件中,缺省情况下,这个文件位于“C:\winnt\system32\inetsrv”目录中。在IIS 5.0中,你可以从内置的IIS插件中来备份元数据。如果需要进行此工作,请选择桌面上的计算机图标然后单击右健。然后再选择 “备份/恢复配置”。然后你就可以选择备份现有元数据设置或者恢复以前的版本。与此相同的选项在MetaEdit 2.2中也可找到。

当你以这种方式保存了元数据时,你的备份将以.md0文件的格式储存在C:\winnt\system32\instrv\metaback文件夹中。当你执行备份时,文件将使用你所指定的名称,如Pre-Lockdown.md0。如果你使用相同的文件名创建了多个备份,他们将使用数字逐渐递增的扩展名,如Backup.md0,Backup.md1等等。

在你的元数据严重损坏的情况下,你将不能启动IIS。此毁中皮时,你也不能从IIS插件或metaedit中执行恢复 *** 作。如果真的发生了类似情况,你就可以通过从备份文件夹中选用最合适的.md0(.md1等等)元数据备份文件来替换Metabase.bin。如果你的备份文件没有错误,IIS将会立刻启动。

制作元数据的备份还有其它两个意义。你可以使用培闷xcopy,scopy或其它复制程序来简单地复制Metabase.bin文件。你应该先停止Internet服务,以保证你的元数据是最新的并且不在使用状态中。

最后,我们还提供了两个脚本--metaback.vbs和metarest.vbs--它们位于Inetpub/IISSamples/sdk/admin(如果你在IIS 5.0上安装了IIS SDK)文件夹中或在IIS Resource Kit/Utility/ADSI Admin Scripts文件夹(如果你安装了IIS 4.0 Resource Kit)中。这些.vbs脚本使用了一个ADSI命纤差令,它是专门为创建元数据备份而提供的。

问: 什么工具能帮助我施加一个负载并进行应用程序的强度测试?

答: 有许多工具可以用来实现这个目的。而且有一些功能完备并且十分有用的你将会发现有相当多的可利用的商业工具可供您利用被完全装备了,并且这些工具是有很用的。Microsoft提供了Web Application Stress Tool,在大多数情况下,对于装载在Web服务器上施加负载来说,并检查它在一定压力下是否能够正常工作这一目的当进行应用程序强度测试时,查看它们的执行情况,这个工具是足够用的。预先执行测试是一个好主意,因为在应用程序的设计过程中,问题并不会显现出来,除非在这个服务器上施加一定负载被加载了--而且在一个产品成品服务器上你肯定不希望发现任何问题。

Web Application Stress Tool有几个有用的特性,它可以将您包括当你在通过Web站点中进行的指向并和点击 *** 作记录为一个可重新回放的脚本路线时记录重放脚本的能力。然后当你远程监视服务器上的性能监视计数器时,就能同步地在一个或多个客户端上重新播放这个脚本。另外,你还能指定详细资料,如用于测试验证身份验证吞吐量所使用的用户账号,以及显示请求和测试计划日程之间的延迟。

当你在你安装了Web Application Stress Tool的时时候,它还在计算机上安装了一个服务,叫名为做“WebTool”的服务。如果你确信当不再需要这个工具时,您可以卸载Web Application Stress Tool。

问: 当Localstart.asp返回了一个“正在创建中”响应时,发生了什么事情?

答: 这个“正在创建中”页面应该出现在从一个远程的IP地址对默认的Web站点进行访问的时候。如果你从一个内部的IP地址访问,IIS在线文档就会被显示。如果你在Internet Explorer中访问http://localhost,并且未安装Default.htm或Default.asp,则Web站点将会运行IISStart.asp。IISStart.asp将检查下面两个条件:

你是否已经敲入输入了“localhost”。

客户端的IP地址是否与服务器端IP地址相匹配。

在任一种情况下,你都将会被重定向到Localstart.asp,然后打开所需要的页面。

确定这些文件在你的系统上是存在的,并且在“文档”选项卡标签中调用的是IISStart.asp。为了确定这些,你可以尝试写一段简短的.asp网页,来显示服务器变量的值,如下:

Your local IP address is 207.46.249.190

The client IP address is 210.82.106.28

如果IP地址没有被识别,则可能是因为Localstart.asp页未被调用。当然,你总是可以通过直接使用http://localhost/localstart.asp来调用它。如果没有配置默认文档,在直接调用Localstart.asp时就可能出现问题。脚本将返回下述消息:

目前当前,你没有为用户设置一个默认文档。当前所有试图连接到这个站点的用户都将收到一个“正在创建中”的页面。

问: 能在Microsoft Windows XP Home Edition中安装IIS或PWS吗?

答: Windows XP Home Edition不支持任何版本的IIS,没有任何可靠的方法能使其运行IIS。Windows XP Home Edition并未设计成一个Web应用程序的开发平台。在升级到Windows XP Professional后,你就可以在系统上安装IIS 5.1,以便利用ASP.Net进行开发工作。在Windows XP Professional上的IIS 5.1是一个全功能的Web服务器端,但是它只能建立10个并发连接,这是因为它只是一个工作站 *** 作系统而不是服务器平台。Windows XP Home Edition还有一些与Windows XP Professional相同的其它限制,因为它也是一个工作站 *** 作系统而不是服务器 *** 作系统。大体上,你会发现,在Windows 2000 Professional和Windows 2000 Server或Advanced Server上的IIS 5.0中,这些差别是相类似的。无论怎样,对于使用.NET Framework来开发基于Web 的应用程序来说,Windows XP Professional才是一个优秀的环境。

问: ISAPI筛选器能在一个单独的进程空间中运行吗?

答: 为与Web服务器协同工作所开发的应用程序都有着特殊的要求。例如,你不能从一个URL中调用一个Notepad.exe实例并且希望在客户端的系统上看到一个记事本窗口。为了从IIS中与请求进行交互(并不是CGI),程序必须使用ISAPI编写。ISAPI是Internet服务器应用程序接口(Internet Server Application Programming Interface)的缩写。有两种可执行的ISAPI:扩展和筛选器。

可以从一个URL中直接调用ISAPI扩展,如http://localhost/myisapi.dll。假设你已经在目录上配置了IIS,允许脚本和可执行程序,并且用户有执行NTFS的许可权限,则dll将会运行。IIS允许你指定应用程序是在进程内(作为Inetinfo部分)运行还是在进程外(作为IIS 4.0上的MTX部分,或者作为IIS 5.x部分的dllhost)运行。当一个应用程序在进程外运行时,Inetinfo就从问题中被隔离出来。如果应用程序出现故障,Web服务器也会出现故障。

ISAPI筛选器又是另一个内容。ISAPI筛选器能改变进入或离开IIS的数据流。因此,ISAPI筛选器有着非常强大的功能,能用来实现客户日志、验证或更改数据流。对IIS 5.0来说,在ISAPI筛选器中实现的特性包括数据压缩、摘要验证和URLScan。

因为筛选器在IIS中扮演了一个如此重要的角色,所以它们总是作为Inetinfo部分运行在过程内。因此,正确的ISAPI筛选器结构对服务器的正常运行是必备的。你可能希望与Microsoft 产品支持服务一起工作来确定问题,因为处理这种例外可能是一个较大的挑战。

基于这个考虑,有两个新技术可以使生活更加轻松,IIS 6.0就是其中的一个。由于它是一个新的体系结构,所有的ISAPI筛选器都在进程外运行。这将使Web 服务器从一个捉摸不定ISAPI筛选器中隔离开来,但这实际上并没有真正解决问题。为了解决这个问题,你可以考试使用.NET语言在ISAPI方面做一些工作。通使用C++设计ISAPI筛选器相比,使用.NET实现相同的功能要大为简单。

问: 我在哪能获得这样的示例代码--它显示了如何在使用WebDAV的ASP中编辑文档?

答: 从IIS上的脚本中使用WebDAV的最好方法就是使用ASP.Net的WebClient类。如果你正在使用Windows XP或Windows Server 2003,WebDAV功能就是这个 *** 作系统的一部分。这就允许你在一个Web服务器上使用HTTP引用一个文件,就像使用一个UNC路径名称一样。例如,你可以用NET USE * http://servername/directory来映射一个驱动器,然后通过使用驱动器符号来访问这个位置。另一方面,你还可以创建一个COM对象,它是一个WebDAV的客户端。你可以使用这个对象向IIS 5.x或IIS 6.0传递WebDAV动词。

另外,如果你以WebDAV为关键词搜索MSDN,你将会找到一些例子,它们教你如何使用XML来为Exchange和其它Microsoft服务器构造WebDAV的查询。在Microsoft Exchange 2000 Server SDK中有一个WebDAV的示例应用程序。

问: 当我试图用ASP去访问一个数据库时,我得到了一个“拒绝访问”的回应,这是什么原因?

答: 有一个名为“Filemon”的优秀免费工具,你可以从Sysinternals.com上获得它。你可以使用Filemon来快速诊断出绝大多数的权限问题,因为它能实时显示服务器上的全部文件权限、调用的过程名称及访问的结果。因此,无论隐藏多么深的嵌套包含或多么模糊的临时索引,任何“拒绝访问”的消息都能被轻松识别。

当一个在先前的 *** 作系统上能够正常工作的应用程序在升级后出现问题时,它就无能为力了。但是,这种类型的问题还是有启发意义的。IIS 4.0和IIS 5.0之间的一个差异就与COM和COM+之间的一个差异有关系。在IIS 5.0中,当一个COM+对象代表用户访问文件时,它的默认行为就是使用用户的安全上下文环境来完成这些工作。这在IIS 4.0中并不算什么事情。因此,当从IIS 4.0向IIS 5.0迁移包含COM的应用程序时,你可能需要向文件提供用户权限,而在IIS 4.0中并不需要。虽然跟以前相比这有些不方便,但是它在提高应用程序安全性设计方面的确是一个进步。即使是不能使用定制的COM对象去访问数据库,COM在本地的IIS组件中还是得到了广泛的应用。

这里有一个能够帮助您理解这种需求的例子,比如,你需要为正在创建数据库的用户授予请求使用Access临时文件夹的权限。更多的信息请查阅Microsoft Knowledge Base中的Q210457和Q271071。

问: 如何在没有恢复原始设置的情况下运行IIS锁定工具?

答: IIS锁定工具非常有效。这个工具允许你轻松、显著地增加服务器的安全性。一旦运行了这个工具,它就将其活动的历史记录储存到一个文件中,这个文件的位置是%systemdrive%\%systemdir%\system32\inetsrv。你将在下面的文件中找到这个信息:

Oblt-rep.log

Oblt-once.md0

Oblt-mb.md0

Oblt-undone.log也可能是最新的。

如果你删除了这些文件,向导就会启动,就好像IIS Lockdown tool并未被运行一样。重复这个过程并没有什么风险。在你这么做之前,一定要制作一个Metabase.bin的副本。

因为当它第一次运行的时候,这个过程将会让你运行锁定工具,就好像它从未被运行过,但并不会“解开”或反转锁定工具进行了一些设置,所以这个过程应该可以正常工作。

问: 在我的intranet环境中,如何处理“server-side include”语法,而不必重新命名所有的文件?

答: IIS 4.0和IIS 5.0提供了这样一个选项,它不需要你更改所有文件的扩展名。ASP处理器也能处理服务器端的include语法,因此没有必要使用.stm或者是.asp扩展名。那么,这对你又有什么帮助呢?通过在应用程序配置中创建一个条目,你可以将.htm 文件映射为由asp.dll处理,这样,哪些带有.htm扩展名的文件就将由asp.dll来处理。通过使用这种方式,那些含有includes的.htm 文件不用重命名就能被处理。现在你可能在考虑:“这会不会导致我所有的.htm文件都像脚本一样被处理,从而降低系统的性能呢?”事实上,在IIS 4.0中,这的确是一个问题;但是,在IIS 5.0中,性能问题并不像你想象中的那么大,并且在IIS 5.1中,甚至会更好。IIS 5.0有一个特性叫做“Scriptless ASP”(无脚本ASP)用来处理这个特殊的问题。如果一个不包含脚本的文件被提交到ASP处理器,它就不会被解析,只是简单地作为静态页面发送出去--在这种特定的情况中是一个有用的特性。

问: 在Windows 2000 Professional中,我怎样做才能让域用户来管理虚拟目录,以便域用户能够创建和管理他们自己的虚拟目录?

答: 你需要做的最后事情就是将域用户加入到Power Users组中,因为这样就可以为域中任何一个拥有用户帐号的人赋予经过提升的权限。如果你信任域中的每一个成员都可以对系统进行很好的管理,这样做不会有什么问题,但是对于大多数计算机用户来说,这样的信任级别是不合适的。

为了在IIS中创建一个虚拟目录,用户需要有管理员权限。之所以这样设计,是因为任何能在Web站点上创建虚拟目录的人也能对虚拟目录进行删除、重命名、重定向或其它管理工作。

认识到这点后,你可能希望不为用户提供管理员身份就能获得类似的权力,在IIS插件中有一个特性(“ *** 作员”标签),能让你指定一个Web站点 *** 作员(不是管理员),为Web站点创建虚拟目录。这个特性只有在Windows 2000 Server、Windows 2000 Advanced Server和Windows 2000 Datacenter Server中是可用的。相同的特性也可应用于IIS 4.0。

另外,你还可以在IIS Web站点内部创建一个虚拟目录,并将它映射到%systemroot%\%systemdir%\inetsrv\iisadmin。你应该保护这个虚拟目录的安全,否则那些访问这个站点的人就能够管理这个Web站点。还要注意,这只有在Windows 2000 Server,Windows 2000 Advanced Server,和Windows 2000 Datacenter Server (以及IIS 4.0)上面是可行的。

当你发现你自己根据 *** 作系统的限制将扩展权限授予了其他人或别的工作组,并且试图将你的工作站当作服务器时,你可能需要安装一个服务器 *** 作系统。

问: 在Windows 2000 Server上,当一个站点需要SSL时,我怎样才能在相同的站点上使用主机头?

答: 让我们回顾一下SSL和主机头的问题,因为对IIS来说,它的问题一直在常见问题解答的头五个中。

当客户发出一个到IIS服务器的HTTP连接请求时,这个客户的请求包括一个叫做HOST:的字段,它包括了URL中的Web服务器请求。例如,如果你的请求将http://www.microsoft.com作为目的地,则浏览器将其发送到服务器,并一同提交HTTP头中的其它信息,HOST: http://www.microsoft.com。因为此字段的名称是“HOST”,并且它在客户的HTTP头中,所以我们把它称作“主机头”。

如果客户请求建立一个SSL连接,主机头字段仍然会包括在请求当中,只不过它被包含在这个包的加密部分里(在应用层中),因此Web服务器无法对其进行解密,以确定应该将请求发送到哪一个Web站点。

这就产生了一条定律:当使用SSL时,不能使用主机头来作为识别一个Web站点的主要手段。

如果你确实想使用带有主机头的SSL,那么会发生什么情况呢?考虑一下这个情况。你有两个Web站点,其中一个不使用主机头,另一个则使用。两个站点都使用相同的IP地址,并且都配置成使用证书。当你利用SSL访问使用主机头的站点时,第一个Web站点会对此做出响应。之所以发生这种情况是因为:我们使用IP地址来识别你希望用来建立连接的站点,而不是主机头。因为第一个站点对IP地址和HTTPS有反应,所以它接受了请求。如果第一个Web站点需要主机头,并且在不同的IP地址上,或者没有证书,那么连接将会失败。

因此,请考虑你的配置,在你需要SSL的相同站点上,只要不使用主机头,你就可以做任何想做的事情。

在web.config里面写

<Rules>

<RewriterRule>宽配

<LookFor>派桐~/product/index.html</LookFor>

<SendTo>~/ProList.aspx</慎羡指SendTo>

</RewriterRule>

</Rules>


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12219310.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存