Http 如何在Windows 2008上为运行在不同平台上的应用程序共享端口80
我有一个ApacheTomcat,它运行在Windows Server 2008 R2标准上,并托管一个网站(www.domain1.com)。Apache当前正在侦听服务器上的端口80。现在,在同一台服务器上,我想托管一个用.NET(www.domain2.com)编写的Http服务器应用程序,该应用程序将作为Windows服务运行。我还希望Http服务器可以通过端口80访问www.domain2.com 所以我需要的就是Http 如何在Windows 2008上为运行在不同平台上的应用程序共享端口80,http,tomcat,iis,portforwarding,netsh,Http,Tomcat,Iis,Portforwarding,Netsh,我有一个ApacheTomcat,它运行在Windows Server 2008 R2标准上,并托管一个网站(www.domain1.com)。Apache当前正在侦听服务器上的端口80。现在,在同一台服务器上,我想托管一个用.NET(www.domain2.com)编写的Http服务器应用程序,该应用程序将作为Windows服务运行。我还希望Http服务器可以通过端口80访问www.domain2.com 所以我需要的就是 Request
Request Forward To
1. http://www.domain1.com/[anything] http://localhost:8080/app1/[anything] <-- tomcat
2. http://www.domain2.com/[anything] http://localhost:8000/[anything] <-- windows service
当我从本地机器或从远程机器检查telnet www.domain1.com 80
时,它没有连接
我欢迎任何涉及netsh、IIS、Tomcat或任何其他第三方工具的端口转发解决方案来实现我的目标
解决方案
按照卡洛斯的建议,以下配置有效
有几点建议:
netsh interface portproxy add v4tov4 listenport=80 listenaddress=www.domain1.com connectport=8080 connectaddress=127.0.0.1 protocol=tcp
netsh interface portproxy add v4tov4 listenport=80 listenaddress=www.domain2.com connectport=8000 connectaddress=127.0.0.1 protocol=tcp
<system.webServer>
<rewrite>
<rules>
<rule name="forward domain1 to tomcat">
<match url="(.*)" />
<conditions>
<add input="{HTTP_HOST}" pattern="domain1.com" />
</conditions>
<action type="Rewrite" url="http://localhost:8080/app1/{R:1}" />
</rule>
<rule name="forward domain2 to windows service">
<match url="(.*)" />
<conditions>
<add input="{HTTP_HOST}" pattern="domain2.com" />
</conditions>
<action type="Rewrite" url="http://localhost:8000/{R:1}" />
</rule>
</rules>
</rewrite>
</system.webServer>