假如有两台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的内容。