IIS反向代理配置

01/28/2019 13:21:38 阅读(2059)

假如有两台web服务器:
Server1 (可外网访问,域名为www.sample.com)
Server2 (不可外网访问,地址为192.168.1.11,但它和Server1互通)
现在我们需要在外网访问Server2上的提供的web服务,怎么办呢?这就需要通过反向代理来解决这个问题了。Nginx是常用的反向代理服务器,今天我们先不谈这个。我们看一下IIS上是如何实现的。
首先安装IIS相关的组件: Application Request Routing(ARR x64 ARR x32) URL Rewrite(x64 x32)。 然后修改www.sample.com网站的web.config,内容如下:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.webServer>
    <rewrite>
      <rules>
        <rule name="arc">
          <match url="^arcgis/(.*)" />
          <conditions>
          </conditions>
          <action type="Rewrite" url="http://192.168.1.11/arcgis/{R:1}" />
        </rule>
      </rules>
    </rewrite>
  </system.webServer>
</configuration>

其中match的url填写要转发(代理)的地址。
这样配置后,url地址是www.sample.com/arcgis/开头的所有请求就会被转发到192.168.1.11上。例如访问http://www.sample.com/arcgis_js_v324_api/arcgis_js_api/library/3.24/3.24/init.js的响应结果实际上就是访问http://192.168.1.11/arcgis_js_v324_api/arcgis_js_api/library/3.24/3.24/init.js的内容。

返回