双IP实现IIS与SQUID共用80端口
Posted in 网络技术 on January 13th, 2010 by 小子 – Be the first to comment我们知道IIS默认情况下是监听所有ip地址的80端口的,也就是说,在网站属性中只要选择“全部未分配”,则该网站就可以使用所有本机可用的ip地址。显然这个不符合我们现在的要求,我们首先将IIS所有站点当中全部改为指定IIS要监听的IP地址,包括默认站点,例如全部改为60.139.1.1。再在网卡中加一个ip,也就是在TCP/ip高级属性中再加一个可用的ip,这样一块网卡就可以使用两个或更多个ip了。
接下来最关键的一步开始了,便是禁用IIS的套接字池(如果这一步没调好,便不会成功),在微软官方网站上有解释: http://support.microsoft.com/kb/238131/zh-cn
概要
在下列情况下,您可能需要禁用套接字池:
1、承载的站点数目不多。
2、有特殊的安全考虑。
3、另一个应用程序或服务器需要某个IP 地址上的端口 80。
更多信息
套接字池会导致“Internet 信息服务”(IIS) 侦听所有 IP 地址,这样,可能会对具有多个网络的安全域造成安全隐患。
另外,带宽调节和性能调整会应用于所有针对同一端口(例如,端口 80)进行配置的 Web 站点。
如果基于每个站点进行带宽调节或性能调整,则必须禁用套接字池。
由于 DisableSocketPooling 在 IIS 6.0 元数据库架构 (MBSchema.xml) 中被定义为有效属性,所以,您仍然可以使用 Adsutil.vbs 设置该属性,但这种设置不起作用。IIS 6.0 中的功能是新增的核心级别驱动程序HTTP.sys 的一部分。要配置 HTTP.sys,您必须使用Httpcfg.exe。 有关如何在 IIS 6.0 中禁用套接字池的其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
813368 (http://support.microsoft.com/kb/813368/) IIS 6.0:设置配置数据库数据 DisableSocketPooling 没有作用
要禁用套接字池,请执行下列步骤:
1. 打开命令提示符并确保您位于 X:\Inetpub\Adminscripts 文件夹(其中 X 是 IIS 安装驱动器)中。为此,请在命令提示符下键入以下 行: X: CD\Inetpub\Adminscripts
2. 打开 Adminscripts 文件夹后,请在命令提示符下键入以下行: cscript adsutil.vbs set w3svc/disablesocketpooling true
3. 该命令反馈如下: disablesocketpooling
BOOLEAN) True
4. 停止 IIS Admin 服务,然后再启动它。
5. 重新启动 WWW 服务。
好了,接下来设置IIS要监听的ip地址。
到2003的CD下的 support/tools/Support.cab。解压出httpcfg.exe文件,COPY到 windows/system32/目录下,用法自己看帮助
命令行:绑定到某IP: httpcfg set iplisten -i 60.139.1.1
即命令使用IIS的只监听指定的IP及端口
查看绑定: httpcfg query iplisten
删除绑定: httpcfg delete iplisten -i 60.139.1.1
IIS部分到此就设置好了,接下来设置SQUID,在SQUID的配置文件添加上需要SQUID监听的ip地址即可。必要的时候重启服务器。


