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信息服务