我知道有多种方法可以将 IIS 服务器设置为代理,但不确定哪个选项适合我的情况。
我想使用我的 IIS 服务器作为代理服务器来访问我在 Tomcat 上运行的应用程序。原因是,我的 IIS 在安全端口上运行。这个端口已经打开,我想使用它。
我在 IIS 中尝试了反向代理。它路由流量,但我注意到两个问题。
- 它更改了地址栏上的地址(我在地址栏中看到了我的 Tomcat 应用程序地址 + 端口),尽管我在设置代理时将选项设置为重写。
- 如果我不在 URL 的末尾附加正斜杠,它就不能正常工作。
我的 IIS 服务器还托管了一些其他应用程序。我不想打扰其他应用程序。因此,我创建了一个空的 Web 应用程序(例如https://myserver/myapp/)并在其上设置了反向代理。
这是我的反向代理规则;
如果这是正确的方法,请纠正我。如果是的话,我错过了什么吗?
编辑 1
我已经尝试过 HttpPlatformHandler。它给出了 502.3 Bad Gateway。这是我在 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>
--- 日志.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"