图解利用 IIS 实现请求转发

2025-06-08 10:09:36

1、安装好插件,重新打开IIS,双击IIS根目录,如下图所示:

图解利用 IIS 实现请求转发

2、双击Application Request Routing Cache,如下图所示:

图解利用 IIS 实现请求转发

3、双击右边的 Server Proxy Settings,如下图所示:

图解利用 IIS 实现请求转发

4、勾上 Enable proxy,如下图所示:

图解利用 IIS 实现请求转发

5、点击“应用”后,新建一个站点,用来接受请求做转发,如下图所示:

图解利用 IIS 实现请求转发

6、双击站点,双击 URL Rewrite -> Add Rules(新建规则) -> Blank rule(空白规则),如下图所示:

图解利用 IIS 实现请求转发
图解利用 IIS 实现请求转发

7、Name:填写你的规则名称Match URL 是匹配Requested URL的规则http://www.test.com?name=michael&age=30host:www.test.comrequested url:?name=michael&age=30query string:name=michael&age=30Requested URL 选择 Matches the Pattern (匹配符合规则的url)Using 选择 Regular Expressions (使用正则表达式来匹配)Pattern 里填写^(.*)这里不对正则表达式做讲解,有需要的可以自己了解。勾选 Ignore case 忽略大小写,如下图所示:

图解利用 IIS 实现请求转发

8、展开 Conditions 条件筛选Logical grouping 选择 Match AnyMatch All 是列表中所有规则都要匹配才符合(与)Match Any 是列表中有一个规则匹配就算符合(或)track capture group across conditions 跟踪捕获组,这个功能跟正则有关,这里不需要不勾选,可以查询关键词capture group 自行了解详情,如下图所示:

图解利用 IIS 实现请求转发

9、点击 Add 添加条竭惮蚕斗件Condition input 填写 {HTTP_HOST},HTTP_HOST 代表请嫫绑臾潜求头里的host,就是上面例子里的www.test.com 部分, 更多可过滤条件查询Server Variables自行了解Check if input string 选择 Matches the PatternPattern 填写^arrtest.com$ ,这里的意思是如果host是 arrtest.com 则匹配通过,例:http://arrtest.com?asdf=1234如果这里填写的是^www.arrtest.com$ ,则匹配 http://www.arrtest.com?asdf=1234勾选 Ignore case 忽略大小写,如下图所示:

图解利用 IIS 实现请求转发

10、双击展开 Action 部分Action type 选择 Rewrite 重写转发Rewrite URL 里填写https://cn.bing.com/{R:1}转发目标地址, {R:1} 代表 Match URL 部分匹配到的 Request URL勾选 Append query string 追加查询字符串,如下图所示:

图解利用 IIS 实现请求转发

11、到此配置结束,保存这个规则,在浏览器访问http://arrtest.com/search?q=测试就等同于访问https://cn.bing.com/search?q=测试为了帛镢宜嗣防止该站点下的其他接口被这个规则无脑转发,我们需要新增一个转发条件现有的需要转发的 API 格式如下 http://arrtest.com?PROTOID=123456其他接口是没有PROTOID这个关键词的,并且 PROTOID 后面的value都是数字,那么这里就用这个关键词来过滤需要转发的请求再回到刚刚的 Conditions 部分,点 Add 新增条件Condition input 填写 {QUERY_STRING}Check if input string 选择 Matches the PatternPattern 填写PROTOID=\d+这个规则的意思是,匹配查询字符串为 PROTOID 开头参数值为数字的请求(例:http://arrtest.com/?PROTOID=456789)勾选 Ignore case 忽略大小写,如下图所示:

图解利用 IIS 实现请求转发

12、确定保存,修改 匹配逻辑为 Match All (与),列表内所有的规则都匹配,请求才会通过,如下图所示:

图解利用 IIS 实现请求转发

13、现在只有 QueryString 为 PROTOID 开头参数值为数字的请求才会被转发了例子:http://arrtest.com/search?PROTOID=4564&q=测试 => http://cn.bing.com/search?PROTOID=4564&q=测试http://arrtest.com/search?q=测试&PROTOID=4564 则不会被转发至此请求转发的功能就实现了,除此之外,强大的 ARR + URL Rewrite 还可以实现高可用负载均衡。

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢