我知道有multiple ways可以将IIS服务器设置为代理,但是不确定哪个选项适合我的情况。
我想将IIS服务器用作代理服务器来访问在Tomcat上运行的应用程序。原因是,我的IIS在安全端口上运行。该端口已经打开,我想使用它。
我在IIS中尝试过reverse proxy。它路由流量,但我注意到两个问题。
- 它会更改地址栏上的地址(我看到了Tomcat 应用程序地址+地址栏中的端口),尽管我在设置代理时将选项设置为重写。
- 效果不佳 如果我未在网址末尾添加正斜杠。
我的IIS服务器还托管了其他一些应用程序。我不想打扰其他应用程序。因此,我创建了一个空的Web应用程序(例如https://myserver/myapp/),并在其上设置了反向代理。
这是我的反向代理规则;
如果这是正确的方法,请纠正我。如果是,我有什么遗漏吗?
编辑1
我尝试了HttpPlatformHandler。它给502.3错误的网关。这是我在web.config文件中的配置。
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<handlers>
<add name="httpplatformhandler" path="*" verb="*" modules="httpPlatformHandler" resourceType="Unspecified"/>
</handlers>
<httpPlatform processpath="C:\Program Files\Apache Software Foundation\Tomcat 9.0_x\bin\startup.bat" arguments="" stdoutLogEnabled="true" stdoutLogFile="c:\dev\javasites\log.txt">
<environmentVariables>
<environmentVariable name="JRE_HOME" value="C:\Program Files\AdoptOpenJDK\jre-8.0.232.09-hotspot" />
<environmentVariable name="CATALINA_HOME" value="C:\Program Files\Apache Software Foundation\Tomcat 9.0_x" />
</environmentVariables>
</httpPlatform>
</system.webServer>
</configuration>
--- log.txt -----
Using CATALINA_BASE: "C:\Program Files\Apache Software Foundation\Tomcat 9.0_x"
Using CATALINA_HOME: "C:\Program Files\Apache Software Foundation\Tomcat 9.0_x"
Using CATALINA_TMPDIR: "C:\Program Files\Apache Software Foundation\Tomcat 9.0_x\temp"
Using JRE_HOME: "C:\Program Files\AdoptOpenJDK\jre-8.0.232.09-hotspot"
Using CLAsspATH: "C:\Program Files\Apache Software Foundation\Tomcat 9.0_x\bin\bootstrap.jar;C:\Program Files\Apache Software Foundation\Tomcat 9.0_x\bin\tomcat-juli.jar"