在我的开发机器上,我正在尝试将IIS配置为反向代理,以将端口443中的请求转发到本地运行的nodejs应用程序。 请求转发正常,但有时nodejs应用程序尝试将浏览器重定向到外部站点,IIS url重写模块也会更改为指向本地服务器。
我使用https://localhost/test进入网站
IIS将请求重新路由到节点应用http://localhost:14819/test
节点应用程序返回一个http 302,其位置标题设置为https://example.com/someroute
IIS将其转换为https://localhost/someroute
我希望IIS不会触及外部网址。这该怎么做? 这是我的Web.config内容
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<clear />
<rule name="ReverseProxyInboundRule1" patternSyntax="ECMAScript" stopProcessing="true">
<match url="^test(.*)" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="false">
<add input="{HTTP_HOST}" pattern="^localhost" />
</conditions>
<action type="Rewrite" url="http://localhost:14819/test{R:1}" logRewrittenUrl="true" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
答案 0 :(得分:3)
如果您从后端代理返回任何重定向,那么您可以 不希望重定向Location头,你可以通过 取消选中&#34;在响应标头中反转重写主机&#34;在申请中 请求路由