iis配置路由遇到的坑小记

智能应用开发与运维容器与中间件

公司旁边项目组是用.net 和 F#开发的,他们最近要把基于 nginx 的负载切换到 iis 上面去,但是一直有很多接口不通。由于涉及到我提供的服务,所以不得不参 与到问题的解决中来。

安装准备

不能免俗的是下载安装 ARR(Application Request Routing),下载地址为: http://www.iis.net/downloads/microsoft/application-request-routing。

安装完成后,在 iis 面板中会多出两个图标,分别是 Application Request Routing 和 URL 重写。

picture.image

这两个图标就是代理的核心。

设置

Application Request Routing

设置在右侧 Server Proxy Settings 里,将代理功能开启,如下图:

picture.image

设置 URL 重写

在设置 URL 重写之前需要先创建站点如下:

picture.image

物理路径中是静态文件的地址,前后端分离的项目中这里是前端页面的地址。绑定和主机名中填写好监听的端口和网站地址。

点击确定后,在左侧会多出一个网站:

picture.image

下面就可以开始配置端口路由了,也就是 URL 重写。

点击 URL 重写图标,新建空白规则,进行设置如下:

picture.image

picture.image

这里需要注意的有以下两点:

重写配置:

picture.image

这里的 R:0 与 R:1,R:N 都是根据上面的测试结果来的。

条件的配置:

picture.image

  • 一般情况有上面的配置就能满足需求了,但是如果需要加一些特别的配置,可以在这里添加,这里需要注意的一点是在配置{URL}的匹配时,这里的 URL 是以/开头的,这点和上面的 URL 匹配是不同的,也就是请求是http://abc.com/third/calendar,那么这里匹配的是/third/calendar部分
  • {HTTP_HOST}意思是请求的主机名,模式格式为:“^绑定的域名$”
  • 这里校验规则时也有一个测试的部分,测试的结果是 C:N,建议还是在使用之前用路径来匹配测试一下。

这里需要注意的是如果配置的有多条规则,重写部分的停止继续往下匹配的那一项要选中,这样它匹配到前面的之后就不会继续往下匹配了,否则还会往下穿透。

问题与解决

现在准备工作都做好了,可以来聊一聊问题了。问题是在前端访问时,在有些页面内的访问时通的,在有些页面一直是不通的,于是开始了漫长的寻找问题之旅,因为之前使用的是 nginx,而大家也都没有使用 iis 的经验。直到最后,使用 www.abc.com/third/xxx/xxx 来访问时是可以通的,但是使用 abc.com/third/xxx/xxx 来访问时是 404。一个同事查了半天总以为是 iis 配置的问题,最后也未能解决。因为涉及到我这边的服务,所以临时来协助下。

一开始怀疑是 hosts 的配置问题,但转念一想,iis 是代理,加了代理之后应该是优先于 hosts 的。实际上改了 hosts 也未能解决问题。

后来想到了建站时的绑定设置,iis 应该是无法识别 www.abc.com 与 abc.com 其实是相同的,绑定如下:

picture.image

发现是可以添加多个的,于是添加一个 abc.com 如下:

picture.image

重启生效后,问题解决。

总结

可能是对 iis 不是很熟悉,但是实际的解决问题的思路是一样的。两种路径请求的结果不一样时,应该多做比较,多联想。也算是着实被 iis 坑了一把,但解决问题的过程中也学会了挺多东西。

0
0
0
0
关于作者
关于作者

文章

0

获赞

0

收藏

0

相关资源
大模型解决方案白皮书——智能巡检场景全流程落地指南
当前,智能巡检行业面临着来自供给端同质化竞争的难题和需求端个性化需求、泛化场景管理的新兴诉求,智能巡检企业如何构建差异化壁垒?如何提升产品附加值?如何以更低的创新成本、更高的创新效率响应用户不断升级的需求? 大模型提供了唯一的解决方案——凭借其强大的自然语言处理、图像理解与生成能力,以及对海量数据的学习和推理优势,大模型能够高效率、低成本开发出即好用又好玩的新产品,并实现品牌差异化,这成为突破智能巡检行业发展瓶颈、重构竞争格局的核心驱动力。 本白皮书介绍了豆包大模型携手火山方舟,为智能巡检行业带来的全新解
相关产品
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论