我有一个Apache Tomcat,它运行在Windows Server 2008 R2 Standard上并托管一个网站(www.domain1.com)。 Apache目前正在服务器上侦听端口80。现在,在同一台服务器上,我想托管一个用.NET编写的Http服务器应用程序(www.domain2.com),它将作为Windows服务运行。我还希望Http服务器通过端口80访问www.domain2.com。
所以我只需要。
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
我尝试使用下面的netsh配置,但它没有帮助。
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
当我从本地计算机检查telnet localhost 80
或从远程计算机检查telnet www.domain1.com 80
时,它未连接。
我对任何涉及netsh,IIS,Tomcat或任何其他第三方工具的端口转发解决方案持开放态度,以实现我的目标。
根据Carlos的建议,下面的配置工作
-
<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>
答案 0 :(得分:2)
一些建议: