同一台机器上的 IIS + Tomcat

同一台机器上的 IIS + Tomcat

我需要在同一台计算机上运行 Tomcat7 和 IIS 7.5,其中操作系统为 Windows Server 2008 R2 Enterprise。
我只有 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 中输入名称,而不会看到默认端口 80。

tomcat无法使用80端口

我可以使用 IIS 根据域名解析传入的 HTTP 请求,并将适当的流量发送到在不同端口上监听的 Tomcat。
例如,www.tomcatapp.com从 IIS 重定向到192.0.2.3:8080Tomcat 正在监听的位置。
或者不使用,IIS“强制用户”以如下方式调用 Tomcat 站点www.tomcatapp.com:8080

还有其他更聪明的方法吗?
为什么 IIS 会“阻止”所有 5 个 IP 的 80 端口?
在 IIS 后面使用 Tomcat 是有利还是不利?

答案1

重定向到端口 8080 的缺点是您要重定向到端口 8080。您的用户将在他们的地址栏中看到它,这看起来有点不专业;此外,一些企业防火墙和网络过滤器会阻止对端口 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,以便您直接监听它。

相关内容