2024年5月3日发(作者:)

服务器IIS与Apache共存,管理不同网站的两种方法

Apache和IIS是目前被广泛使用的两种Web服务器软件。其中,Apache是开源软件,

不仅用于Unix系统,也可用于基于Win32平台的版本;IIS是Windows操作系统自带的组

件,也提供了强大的Internet和Intranet服务功能。这两种服务器软件各有特色,前者对

ASP+Access(及SQLServer)的支持比较好,而后者是PHP+MySQL(及JAVA+SQLServer)

平台的不二选择;用IIS没有Apache所支持功能多,而且Apache较IIS运行速度快一点。

对于一台服务器上同时使用IIS与Apache管理网站,比如分别运行基于ASP+Access

(及SQLServer)和PHP+MySQL(及JAVA+SQLServer)站点,则无法同时使用80端口,

否则其中必定有一个启动不了。重新配置IIS使其支持PHP+MySQL,或者重新配置Apache

使其能支持ASP+Access,从理论上说是可以的,但配置过程较复杂,不易于推广使用。在

这里,我们来说明两种较为简单实用的方法,实现同一台服务器的IIS与Apache有效共存。

方法一:多IP下共存(服务器为多线接入,拥有多个IP)

针对IIS6:IIS为219.153.70.251(举例),apache为219.153.70.252(举例)。

到2003的CD下的 support/tools/。解压出文件,COPY到

windows/system32/目录下,用法看帮助

在“开始菜单-运行”中输入命令行:httpcfg set iplisten -i 219.153.70.251

说明:

绑定到指定IP,即命令使用IIS的只监听指定的IP及端口

查看绑定: httpcfg query iplisten

删除绑定: httpcfg delete iplisten -i 219.153.70.251

在“开始菜单-运行”中输入命令行:

net stop Apache2 (如果是Apache版本是2.2,则改为Apache2.2)

net stop iisadmin /y

net START Apache2

net START w3svc

保证iis下的ip设置为全局默认,并在Apache中httpconf文件设置listen

219.153.70.252:80(注意语句前的注释号#要去掉)。

注意:设置完毕后,要重启系统方可生效。现在,两个服务同时运行,相互不冲突了。

IIS的访问地址为219.153.70.251,Apache访问地址为219.153.70.252

针对IIS5的方法:

IIS为219.153.70.251,apache为219.153.70.252

c:InetpubAdminscripts

cscript set w3svc/disablesocketpooling true

该命令反馈如下disablesocketpooling : (BOOLEAN) True

重启IIS

知名品牌、优秀品质、实惠价格、专业服务——

钻石钻饰选购、定制、服务,首选八钻网()

InetpubAdminScripts>cscript set w3svc/disablesocketpooling true

由于 DisableSocketPooling 在 IIS 6.0 元数据库架构 () 中被定义为有

效属性,所以,仍然可以使用 设置该属性,但这种设置不起作用。IIS 6.0 中的

功能是新增的核心级别驱动程序 的一部分。要配置 ,必须使用

方法二:设置IIS代理

IIS和Apache及其下的网站配好后,因为默认的Apache配置使用的是80端口,所以

对各站点的访问都指向了Apache下的站点,要访问IIS下的站点则需要输入端口号。不过

总不能让访问IIS下站点的朋友都在网址后面输入一个端口号吧,没关系,只要按照下面的

方法在Apache里稍做设置就可以直接使用域名访问了。

将apache设为使用80端口,IIS使用其它端口,比如8081,然后将apache作为IIS的

代理,这种方法用的最多,但速度会有些影响。

打开文件,取消下面四行的注释:

LoadModule proxy_module modules/mod_

LoadModule proxy_connect_module modules/mod_proxy_

LoadModule proxy_http_module modules/mod_proxy_

LoadModule proxy_ftp_module modules/mod_proxy_

然后建立一个虚拟主机,将对IIS管理的域名的所有访问转向8081端口。

ServerName (示例网址)

ProxyPass / localhost:8081/

ProxyPassReverse / localhost:8081/

如果有两个以上的IIS站点,只要按照以上步骤在Apache中建立多个虚拟主机就可以

了。以上两步操作完成后,保存文件,重启Apache服务。这样就实现了IIS和

Apache共存,基于ASP平台的站点可以直接放在IIS里运行,基于PHP、JAVA的站点则运

行在Apache下。

两种方法在效率上的比较

第一种方法,IIS平台与Apache平台各自使用不同的IP,IIS网站不受Apache服务限

制,一般网站访问速度不受影响。但多线接入的服务器,在多个IP分属电信、网通,则使

用网通IP的网站,电信用户访问速度会偏慢一些,反之亦然。

第二种方法,因将apache作为IIS的代理,通常IIS网站访问速度会稍慢一些。如果

Apache不太稳定,或出现故障,就会影响到IIS网站访问。

实际应用中,目前第二种方法使用更多一些。

使用第一种方法,可以在IIS上配置PHP4,Apache2中配置PHP5,只需要IIS中安装

PHP4,把复制到windows目录即可,Apache2中,只要把PHP5

知名品牌、优秀品质、实惠价格、专业服务——

钻石钻饰选购、定制、服务,首选八钻网()