我需要在同一台计算机上运行 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:8080
Tomcat 正在监听的位置。
或者不使用,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,以便您直接监听它。