1.概念说明:反向代理

反向代理服务器位于用户与目标服务器之间,但是对于用户而言,反向代理服务器就相当于目标服务器,即用户直接访问反向代理服务器就可以获得目标服务器的资源。同时,用户不需要知道目标服务器的地址,也无须在用户端作任何设定。反向代理服务器通常可用来作为Web加速,即使用反向代理作为Web服务器的前置机来降低网络和服务器的负载,提高访问效率。【来源】https://baike.baidu.com/item/%E5%8F%8D%E5%90%91%E4%BB%A3%E7%90%86/7793488?fr=aladdin

2.应用场景说明:【具体分析实际情况】

Windows Server  IIS+ARR反向代理(配置反向代理服务器)-DESTLIVE

3.场景准备

在服务器A的tomcat部署一个测试网站:http://192.168.56.1:8080/
服务器B安装IIS及相关组件。

4.操作步骤

(1)安装ARR组件、安装下面两个软件
a)url重定向安装包(双击可安装,不行的话请另行下载:https://www.iis.net/downloads/microsoft/url-rewrite#additionalDownloads)
b)requestRouter_amd64安装包(双击可安装,不行的话请另行下载:https://www.iis.net/downloads/microsoft/url-rewrite#additionalDownloads)
(2)安装完成后IIS目录界面如下
Windows Server  IIS+ARR反向代理(配置反向代理服务器)-DESTLIVE
Windows Server  IIS+ARR反向代理(配置反向代理服务器)-DESTLIVE
(3)创建一个网站(myProxy),物理路径随便定义一个指定就行。
Windows Server  IIS+ARR反向代理(配置反向代理服务器)-DESTLIVE
(4)配置host文件(可选项,如果要指定127.0.0.1指向某个域名)
(5)启用Proxy
Windows Server  IIS+ARR反向代理(配置反向代理服务器)-DESTLIVE
Windows Server  IIS+ARR反向代理(配置反向代理服务器)-DESTLIVE
(6)添加URL重写规则
选择我们创建好的网站,然后打开URL重写设置页面–在右侧点击“添加规则”,在弹出的窗口中选择创建“空白规则”。
Windows Server  IIS+ARR反向代理(配置反向代理服务器)-DESTLIVE
Windows Server  IIS+ARR反向代理(配置反向代理服务器)-DESTLIVE
Windows Server  IIS+ARR反向代理(配置反向代理服务器)-DESTLIVE
配置相关参数
Windows Server  IIS+ARR反向代理(配置反向代理服务器)-DESTLIVE
Windows Server  IIS+ARR反向代理(配置反向代理服务器)-DESTLIVE
Windows Server  IIS+ARR反向代理(配置反向代理服务器)-DESTLIVE
设置完成后点“应用”
Windows Server  IIS+ARR反向代理(配置反向代理服务器)-DESTLIVE
至此已完成配置。

5.测试效果

打开浏览器输入应用服务器A发布的网站的地址:http://192.168.56.1:8080/,效果如下图。
Windows Server  IIS+ARR反向代理(配置反向代理服务器)-DESTLIVE
打开浏览器输入代理服务器B进行url重写后的地址:http://192.168.2.107:8088/,效果如下。
Windows Server  IIS+ARR反向代理(配置反向代理服务器)-DESTLIVE

6.总结

通过页面配置完成后,在myProxyServer目录下会生产一个web.config文件,保存了配置信息,另一种方式我们可在myProxyServer中创建文件web.config,然后编辑以下信息并保存即可。
web.config配置信息:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <rule name="myProxyServer">
                    <match url="^(.*)" />
                    <conditions>
                        <add input="{HTTP_HOST}" pattern="^192.168.2.107:8088$" />
                    </conditions>
                    <action type="Rewrite" url="http://192.168.56.1:8080/{R:1}" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>

这里是http的方案。如通过https请求,需要使用SSL证书另行配置,且需要有通过备案的IP或域名。
说明:IIS网站请求限制配置(参数默认是4096,如果post参数较长就会被限制了,所以改下)。如果应用中有post请求的参数较长而被限制时,可通过调整以下配置解决。
maxAllowedContentLength:设置上传附件的大小
MaxQueryString:设置请求参数长度
MaxUrl:设置url长度(一般比MaxQueryString要长一些)
Windows Server  IIS+ARR反向代理(配置反向代理服务器)-DESTLIVE