当前位置:  开发笔记 > 运维 > 正文

Windows2003上的Apache和IIS并排(都是端口80)

如何解决《Windows2003上的Apache和IIS并排(都是端口80)》经验,为你挑选了3个好方法。

有什么好方法可以做到这一点?甚至可以干净利落地做?

理想情况下,我想使用数据包标头来决定哪个服务器应该处理请求.但是,如果有更简单/更好的方式让我知道.



1> mdb..:

两个服务器都不可能在同一个IP地址上侦听同一个端口:由于单个套接字只能由一个进程打开,因此只有为某个IP /端口组合配置的第一个服务器才会成功绑定,第二个服务器将成功绑定将失败.

因此,您需要一种解决方法来实现您的目标.最简单的可能是在主IP /端口组合上运行Apache,并使用mod_rewrite将IIS的路由请求(应该为不同的IP和/或端口配置).

请记住,运行的备用IP和端口应该可以连接到连接到服务器的客户端:如果只有一个可用的IP地址,则应该注意选择一般不被防火墙阻止的IIS端口(8080可能是一个不错的选择,或443,即使您运行常规HTTP而不是SSL)

PS此外,请注意,您需要使用httpcfg修改IIS默认配置,然后才能允许其他服务器在同一服务器上的任何IP地址的端口80上运行:请参阅Micky McQuade的答案,了解执行该操作的过程...


对于未来的读者来说,`mod_rewrite`不是解决这个问题的好方法,因为它只处理URL,而正确的代理处理其他所有问题.

2> Micky McQuad..:

我发现以下链接建议有两个单独的IP地址,以便两者都可以侦听端口80 :(编辑:链接不再有效:www.prismix.com/blog/2006/06/running_apache_and_iis_6_toget.cfm)

有一点需要注意,由于套接字池,你必须在IIS中进行更改.以下是基于以上链接的说明:

    从Win2003 CD上的支持工具区域中提取httpcfg.exe实用程序.

    停止所有IIS服务:net stop http/y

    让IIS只监听我为IIS指定的IP地址:httpcfg set iplisten -i 192.168.1.253

    确保:httpcfg查询iplisten(列出的ip是IIS将监听的唯一IP地址,而不是其他的)

    重启IIS服务:net start w3svc

    启动Apache服务



3> Walf..:

对于在一台服务器上只有一个IP地址多个站点的用户,可以将IIS配置为侦听除其他端口以外的端口80,例如,8080通过在每个站点的属性中设置TCP端口(包括默认端口).

在Apache中,启用mod_proxymod_proxy_http,然后添加一个包罗万象的虚拟主机(所有其他后),以便请求Apache不明确处理GET"转发"到IIS.


    ServerName foo.bar
    ServerAlias *
    ProxyPreserveHost On
    ProxyPass / http://127.0.0.1:8080/

现在,您可以让Apache为某些站点提供服务,而IIS则为其他站点提供服务,而对用户没有明显的区别

编辑:您的IIS站点不得在其响应中的任何URL中包含其端口号,包括标头.

推荐阅读
LEEstarmmmmm
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有