您当前的位置:首页 > 计算机 > 服务器 > IIS

如何使用 IIS 作为反向代理

时间:04-11来源:作者:点击数:

官方提供了可选模块 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>
方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门