周二的时候发布了一篇通过IIS ARR做七层高可用的配置方法,有小兄弟吐槽内容太浅,其实小编涉猎的领域有Office365,Exchange和智能运维,如果觉得浅的话,建议可以关注小编的另一个公众号Mustbegeek。
今天讲的内容是在上一讲的基础上介绍通过IIS ARR做反向代理。这其实是小编在工作中碰到的一个实际问题:某个应用是通过nginx发布的,nginx通过URL传入的不同参数,将请求代理到后端不同的组件端口上。
所谓的参数传递就是指不同的URL对应了不同的服务器,比如当我访问;前端IP>/api/spl/xxxxx?xxx=xxx&xxx=xxx时,请求会被转发到spl服务器的对应;spl服务器>:<端口>/xxxxx?xxx=xxx&xxx=xxx页面,而在访问;前端IP>/api/alarm_rule/yyyyyy?yyy=yyy&yyy=yyy时,请求被转发到报警服务器的对应;alarm服务器>:<端口>/alarm_rule/yyyyyy?yyy=yyy&yyy=yyy。nginx是在conf文件中添加server-->location-->rewrite语句,而在IIS中我们用到的是ARR的URL Rewrite功能。
装完我们上堂课的组件之后,IIS中的每个站点的配置页面中都会多出一个URL Rewrite的图标。
注意,在Windows2016上安装URLRewrite组件时,需要先将IIS主版本调低(HKLM\SOFTWARE\Microsoft\InetStp的MajorVersion从10改到9),不然将无法安装。安装完成后再调回来。
好,针对Nginx的这几个策略,IIS在图形界面就可以配置。我们首先添加一个spl的重定向的入站规则。Nginx里面配的是rewrite,那我们这边也配置重写,匹配规则的表达式也与Nginx里的一致。
这里大家可能要问了,重写URL中的{R:2}指的是什么,{R:2}表示第二个参数,我们正则表达式做测试就知道了。
很显然,我们匹配到第三层目录及之后的内容,这正好是要我们传递到spl服务器的参数,如果我们的参数中还包括第二层目录的内容那就需要在目标地址后加上参数{R:1},如;地址>:<端口号>/{R:1}/{R:2}。
按照同样的办法,我们将数据库的请求参数传递给数据库服务器。
完成之后,我们可以看到对应站点的web.config文件被加入了rewrite的代码。IIS的web.config就相当于是nginx的conf文件,不过是标准的XML格式。
Exchange中文站10周年,全网首发Exchange2016中文视频教程促销中,喜欢的童鞋可进入“精选文章”-->“Exchange视频教程”购买。