首页 > Web开发 > 详细

利用IIS UrlRewrite和ARR实现反向代理

时间:2020-07-18 13:58:55      阅读:97      评论:0      收藏:0      [点我收藏+]

IIS UrlRewrite是用来做请求重定向IIS Extension.(https://www.cnblogs.com/Code-life/p/13210399.html). 但是它只是做一个重定向,后续的处理依然由Web Server针对新的Url进行处理。其在IIS中的执行流程如下:

技术分享图片

因此,它只能将Url Rewrite到当前应用下的其他Url。但是如果我想在某些情况下将某些Url rewrite到其他应用,只考Url Rewrite就无能为力了。必须结合IIS 的另一个Extension, ARR(Application Request Routing).

ARR可以用来实现前向代理,反向代理,负载均衡等等功能,反向代理只是其很小的一个功能。我们需要做的很简单,安装后Enable就可以了。

技术分享图片

剩下的工作就是在Url Rewrite模块中创建一个Inbound Rule:

<rule name="LocalProxyInbound" enabled="true" stopProcessing="true">
      <match url="(proxy)(/testSite)(/.*)" /> <!--匹配所有proxy/testSite开头的请求-->
      <conditions>
      </conditions>
      <action type="Rewrite" url="http://localhost:8080{R:3}" logRewrittenUrl="true" /> <!--将匹配请求转发到localhost:8080另一个网站-->
 </rule>

 

然后我们创建一个网站(localhost:8080),里面有一个页面index.html,输出字符串"This is from test site".

技术分享图片 然后浏览器中访问:localhost/proxy/testSite/index.html

我们访问的地址是localhost/proxy/testSite/index.html, 通过URL Rewrite和ARR后将请求转发给了localhost:8080获取到index.html页面后返回给了浏览器。而在浏览器中看不到任何相关痕迹。这便实现了反向代理。

利用IIS UrlRewrite和ARR实现反向代理

原文:https://www.cnblogs.com/Code-life/p/13335042.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!