iis 反向代理 API以及websocket

  前言:前端的系统一般不支持跨域,需要我们部署的时候配置下反向代理。这边介绍下iis反向代理,iis反向代理是通过iis的URL重写模块来重写URL从而访问目标服务器的。假设我们的前端服务器是A,后端API服务器是B,我们访问A的时候,也要能访问B,就需要在A上配置反向代理,重写URL指向B对应的URL。

  反向代理的url重写原理:将初始的URL不需要替换的部分,用正则表达式匹配出来,将需要替换的地方,输入新的值,拼成新的URL。

  iis插件安装:Application Request Routing(ARRv3.0)、Url-Rewite

       

 

       首先需要打开Application Request Routing配置,启用代理,如下图所示。 

       

 

 

 

  前后端的服务器部署情况:前端:WoodApp 端口:8000 后端:WoodApi 端口:5055 ,需要在WoodApp上设置重写URL规则

  

        api路径的配置如下  模式:^(.*?)/?api/(.*)$

   

 

  websocket路径配置如下,注:iis8以上版本才支持websocket 模式:^(.*?)/?Hubs/(.*)$  下面的CACHE_URL网上看到是(.+)s:// 以及(.*)s:// 多了个s,因为别人是带证书的,这边还没有。

  

 

  

 

  如果项目路径不太一致,研究下url重写参数以及正则表达式,iis配置里面的测试模式可以点击测试下。还有如果将websocket放在api重写下面,则websocket没有效果,暂时不知为何,将websocket上移则正常运行。

       url重写模块配置好之后,会在网站应用程序下生成一个web.comnfig文件。如果需要重新部署,则要带上这个web.config文件,如果不带,则配置的url重写也会一起消失。 

       

 

 

       iis版本如何查看:点击iis菜单栏 帮助-关于Internet信息服务  

  

 

posted @ 2022-11-18 11:09  木子樵  阅读(1864)  评论(0)    收藏  举报