当前位置:软件学习 > ISA >>

发布位于本地主机上的Web站点

内容概要:很多朋友在问如何发布位于本地主机上的Web站点。其实发布失败的最主要原因是因为IIS的Socket Pooling问题。通过这篇文章,你可以学习到如何成功的发布本地主机上的Web服务。

很多朋友的ISA防火墙也同时是Web服务器,对内部网络或外部网络提供Web服务,你可以通过配置访问规则或者Web发布规则来让别人访问你的Web站点。

使用访问规则来允许别人访问非常简单,你只需要允许内部或外部网络访问本地主机上的HTTP/HTTPS服务即可。但是,我强烈建议你使用Web发布规则来允许,因为ISA防火墙对于HTTP协议的许多应用层的过滤特性,只有在Web发布规则中才能使用。

对于常见的边缘防火墙模型,ISA具有两个网络接口,分别连接内部和外部网络。但是在建立Web发布时,侦听器需要侦听对应的端口,所以你不能将Web站点绑定在发布出去的网络接口上。你可以将你的Web站点绑定在内部网络接口的IP地址上,然后在外部网络接口的IP上发布此Web站点,这样即可让外部网络的用户访问此Web站点。

注意:当然,你可以将IIS绑定在另外的端口,如TCP 81上,然后ISA防火墙使用标准的TCP 80端口来发布服务,就不存在端口重复占用的问题,也避开了下面讨论的Socket Pooling问题。

谈到这儿就不得不说说IIS的Socket pooling问题(关于这个问题,我已经在如何禁止Socket Pooling一文中进行了介绍,建议你先看看这篇文章)。Socket pooling(套接字池)限定了IIS可以用于绑定Web站点的IP地址,默认是本机上的所有IP地址。但是当你在IIS管理器中配置Web站点绑定的IP地址时,无论你选择哪个IP地址,都是绑定在套接字池中的所有IP地址上。在这种时候,就算你在IIS限制Web站点只绑定在内部的IP地址上,它也会占用外部IP地址的对应接口,此时ISA防火墙就不能再侦听外部IP地址的此端口做Web发布,导致ISA出现资源分配失败的警告。所以,我们必须限制IIS使用的套接字池,限制它只能使用内部网络接口的IP地址。其他的Web服务器(如Apache等)没有这个问题,直接修改绑定的IP地址即可。

下图是我们的网络拓朴结构,

ISA防火墙操作系统为Windows Server 2003企业版,ISA防火墙软件版本为ISA Server 2004企业版英文版beta,不过操作和标准版基本一致。ISA防火墙作为边缘防火墙/Web服务器,连接内部和外部网络,同时对内部和外部网络提供Web服务。ISA防火墙上已经配置了允许本地主机访问所有网络的所有服务的策略。各计算机的TCP/IP设置如下,此次试验不设计DNS,各计算机的DNS服务器IP地址均设置为空:

ISA防火墙

External Interface:

  • IP:61.139.0.1/24
  • DG:61.139.0.1

Internal Interface:

  • IP:192.168.0.1/24
  • DG:None

 

Client1

  • IP:192.168.0.10/24
  • DG:192.168.0.1

 

External Client

  • IP:61.139.0.10/24
  • None

 

 

本文将按照以下步骤进行:

  • 在Web服务器上禁止Socket Pooling;
  • 建立Web发布规则,发布绑定在内部IP地址上的Web站点;
  • 建立访问规则,允许内部访问本地主机和外部的HTTP/HTTPS;
  • 测试;

  

2、建立Web发布规则,发布绑定在内部IP地址上的Web站点

现在我们可以建立建立Web发布规则,发布绑定在内部IP地址上的Web站点。

打开ISA防火墙管理控制台,展开阵列FLORENCE,然后右击防火墙策略(FLORENCE),选择新建->Web服务器发布规则

欢迎使用新建Web服务器规则向导页,输入规则名字,在此我命名为Publish 192.168.0.1,点击下一步

规则动作页,接受默认的允许,点击下一步

定义发布的Web站点页,输入内部接口的IP地址192.168.0.1,如果此站点上具有多个Web站点并且你想使用所有域名发布,则勾选转发原始主机名头,点击下一步

公共名称细节页,选择所有域名,点击下一步

选择Web侦听器页,点击新建

欢迎使用新建Web侦听器向导页,输入名称为Listen External 80,点击下一步

IP地址页,勾选外部,点击下一步

注意:为什么不勾选内部?相信有人会有这个疑问。很简单,内部IP地址已经被IIS的Web站点所占用,所以我们为什么还需要额外的一条访问规则,以允许内部访问本地主机和外部的HTTP/HTTPS协议。

端口指定页,接受默认的80,点击下一步

正在完成新建Web侦听器向导页,点击完成

然后在选择侦听器页,点击下一步

用户集页,接受默认的所有用户,点击下一步

然后在正在完成新建Web发布规则向导页,点击完成

3、建立访问规则,允许内部访问本地主机和外部的HTTP/HTTPS

右击防火墙策略(FLORENCE),选择新建->访问规则

欢迎使用新建访问向导页,输入规则名字,在此我命名为Allow Internal to Localhost,点击下一步

规则动作页,选择允许,点击下一步

协议页,选择选择的协议,加入HTTPHTTPS,点击下一步

访问规则源页,添加内部,点击下一步

访问规则目的页,添加本地主机外部,点击下一步

用户集页,接受默认的所有用户,点击下一步

然后在正在完成新建访问规则向导页,点击完成

最后点击应用以保存修改和更新防火墙策略。

此时的防火墙策略如下图所示:

 

 

4、测试

现在我们先在I

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,