码上焚香

Yahocen

IIS7 请求转发到其他服务

37
2024-05-10

项目部署时发现服务器使用ISS网关,IIS默认是没有请求转发功能的。
废了一些时间搜索资料都写得也不够详细明白,但有结果IIS官方提供了请求转发的组件,本篇记录一下最终的解决步骤。

需要两个的插件
ApplicationRequestRouting(请求路由程序)
URLRewrite(URL重写组件)

官方下载地址:
    https://www.iis.net/downloads/microsoft/application-request-routing
    https://www.iis.net/downloads/microsoft/url-rewrite

百度云下载链接:
    https://pan.baidu.com/s/1ebW_PoRWlZHuM5zM-_PQ6A  提取码:8md1

下载后分别安装二个插件,重新打开IIS(安装过程中出错一次,我重启服务器后再次安装解决了)

点击主页,找到IIS分类中的 Application Request RoutingCache 双击打开

打开右边的 Server Proxy Settings 并勾选 Enable proxy 项

双击网站新建站点,打开新建的站点 依次点击 URL Rewrite(URL重写) -> Add Rules(新建规则) -> Blank rule(空白规则) 

名称:填写规则名称(随意)

匹配URL:
    请求的URL:与模式匹配
    使用:正则表达式
    模式:^(.*)  <--这个就是正则表达式 不懂的自行了解
    勾选忽略大小写

条件 -> 添加:
    条件输入:{HTTP_HOST}
    是否检查输入字符串:与模式匹配
    模式:^xxx.com$  <--自行更改自己的外网链接
    勾选忽略大小写

操作:
    操作类型:重写
    操作属性:
        重写URL:http://ip:port/{R:1} <-- 项目实际地址  {R:1} 代表匹配URL部分匹配到的请求地址
        勾选附加查询字符串

至此请求转发的功能就实现了,你可以自由的改变添加条件来匹配需要拦截的请求路径,这里就不做演示了。
个人对IIS并没有太多研究,搜索资料的过程中了解到IIS还有其他强大的功能,比如负载均衡等有兴趣的伙计自行了解吧。