官方提供了可选模块 ARR:
Application Request Routing:https://www.iis.net/downloads/microsoft/application-request-routing
可惜此模块未能支持中文,安装此模块前需要先安装:
URL Rewrite:https://www.iis.net/downloads/microsoft/url-rewrite
且后续反向代理配置也主要在此模块中进行配置。
安装后在 IIS 管理器的根节点上可以看到此模块
进入此模块,在右侧找到 Server Proxy Settings... 进入:
在页面中可勾选 Enable Proxy,在右侧点击应用即完成启用,此页面还有一个 Reverse rewrite host in response headers 的选项,如果遇到问题可以考虑禁用此选项(未研究此选项的具体作用)
另外还有一个配置在根节点的“配置管理器”中
可以将 preserveHostHeader 设为 True,暂未知其作用
然后进入需要配置的网站打开 URL 重写 模块,即可正常添加反向代理规则
以下使用 web.config 做一个简单示例,以下实现了 https 的自动跳转,以及将路径指向 5212 端口的一个网站
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="HTTP to HTTPS redirect" stopProcessing="true">
<match url=".*" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="false">
<add input="{HTTPS}" pattern="off" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}/{R:0}" redirectType="Permanent" />
</rule>
<rule name="Rerwite" stopProcessing="true">
<match url="cloudreve.*" />
<conditions logicalGrouping="MatchAny" trackAllCaptures="false">
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
</conditions>
<action type="Rewrite" url="http://localhost:5212/{R:0}" />
</rule>
</rules>
</rewrite>
<security>
<requestFiltering allowDoubleEscaping="true">
<requestLimits maxAllowedContentLength="60000000" />
</requestFiltering>
</security>
</system.webServer>
</configuration>