IIS + Tomcat在同一台机器上

我需要在操作系统是Windows Server 2008 R2 Enterprise的同一台计算机上运行Tomcat7和IIS 7.5。
我只有1个NIC和5个IP地址与机器相关联。 让我们说:

- 192.0.2.1, 192.0.2.2 for IIS - 192.0.2.3, etc for Tomcat 

端口80由IIS使用。

对IIS站点的调用没有任何问题,因为映射www.site1.com => 192.0.2.1:80允许用户在URL中input名称,并且不会看到默认端口80。

但是tomcat不能使用80端口

我可以使用IIS根据域名parsing传入的HTTP请求,并将适当的stream量发送到监听不同端口的Tomcat。
例如, www.tomcatapp.com被从IISredirect到Tomcat正在监听的192.0.2.3:8080
或者没有使用,IIS“强制用户”将www.tomcatapp.com:8080调用Tomcat站点

可以另一个更聪明的方式?
为什么IIS为所有5个IP“阻塞”端口80?
我会在IIS后面使用Tomcat获得一个好处或惩罚吗?

redirect到端口8080的缺点是,您将redirect到端口8080.您的用户将在他们的地址栏中看到它,这看起来有点不专业; 此外,一些企业防火墙和网页filter将阻止访问端口8080,所以这也可能是一个问题,取决于你的客户。

如果您可以将其中一个IP(或者如果已经是这种方式)专用于Tomcat Web应用程序,那么您实际上可以让IIS停止绑定该端口:

 netsh http add iplisten 192.0.2.1 netsh http add iplisten 192.0.2.2 netsh http show iplisten 

其中192.0.2.1和192.0.2.2是您希望IIS绑定到端口80的地址。 完成后,重新启动IIS服务。 请参阅这里以供参考。

这将释放您想要Tomcat绑定的IP地址上的端口80,从而允许您直接收听。