Note · 2023年7月17日 0

IIS的反向代理

关于IIS的代理功能,网上虽然有很多文章,但是能够真正将IIS代理功能解释清楚的并不多。今天我们就一同探究一下IIS的代理功能。建议IIS版本至少为7.0(操作系统Windows Server 2008),IIS6就暂不考虑了吧。

代理分为正向代理、反向代理。

正向代理一般用于隐藏访问者真实信息,通过代理服务器对目标进行访问的操作。比如我们有时候需要访问google,google在国内无法直接进行访问,这时候我们就可以通过一个能够访问google的服务器将我们的请求信息转发给google,并接收google的返回结果。

反向代理一般是要隐藏真实的服务器信息,代理服务器将客户请求转发给目标服务器,并将目标服务器的返回结果反馈给客户。常用的例子有负载均衡,反向代理一般常用NGINX,其实IIS也有这个功能。

总得来说,正向代理针对的是如何隐藏真实客户端,反向代理针对的是如何隐藏真实的服务端。

介绍了代理的基本概念,接下来开始介绍如何在IIS下配置反向代理。

  • 其实在IIS下配置反向代理是一件很简单的事情,不要有心里负担,配置起来和Nignix的方向代理基本一致。
  • 首先安装两个IIS插件:Application Request Routing(ARRv3.0)、Url-Rewite。

Application Request Routing : The Official Microsoft IIS Site

URL Rewrite : The Official Microsoft IIS Site

配置反向代理:

安装完ARR之后IIS中功能菜单中会多出一个Application Request Routing Cache中,打开代理的功能。

IIS的反向代理
IIS的反向代理

URL ReWrite安装后,点开一个网站功能菜单中会有一个 URL 重写,根据安装的版本不通URL 重写有可能是中文版或是英文版,下载的时候注意选择对应的版本。

IIS的反向代理

接下来就可以进行IIS的方向代理配置,这里我们新建一个网站叫ProxyTest,绑定域名https://dt.cq.cn(这个换成自己需要的域名)。

IIS的反向代理

配置完成后访问一下网站

IIS的反向代理

接下来配置方向代理,打开proxytest网站的URL重写,点击添加规则,点击弹出页面的空白规则。创建如下配置,点击应用。模式选择与模式匹配,模式的正则表达式填写(.*)全部匹配。

IIS的反向代理

重写的URL填写你本地的一个URL,或者局域往内的URL,这样就能够实现返现代理的功能,浏览器中打开https://dt.cq.cn,就可以访问到本机的8089下的内容。

配置完成后知道刚刚proxy网站的目录下,可以看到一个web.config文件,反向代理的设置就配置在这个web.config中。

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <rule name="proxy.niubi.com" stopProcessing="true">
                    <match url="(.*)" negate="false" />
                    <action type="Rewrite" url="http://localhost:8089/{R:1}" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>

可以直接将web.config,改造成你的所有需要的直接放在网站下边就可以实现反向代理了。

IIS还可以实现URL头部改写、负载均衡等功能,这些等用的时候再一一详解。