在首次使用ARR的时候,曾经踩过一个坑,结果导致测试服务器IIS上的所有网站都无法正常打开,排查发现网站请求的js和css文件都返回404,有的网站甚至连页面也返回HTTP 404。后经过研究,发现造成此问题的原因在于首次创建ARR的Server Farm时,iis会引导我们创建一个默认的服务器级别的重写规则,如果不仔细看点确定就踩到坑里去了。
PS:ARR,全名Application Request Route,是IIS一个用于实现负载均衡功能的模块,基于URL重写模块,网上有很多相关文档和资料,可以另外搜索下。
在完成创建ARR的Server Farm的所有步骤后,点击完成,此时IIS会弹出如下图的确认对话框:
一定要仔细看下对话框中的提示信息,除非的确需要生成一个默认的重写规则,否则这里一定要点否,不然IIS会帮你创建一个捕捉所有请求的路由规则,将所有发送到IIS的请求都重写到默认的服务场Server Farm上,实现默认负载均衡,如下图:
此规则是服务器级别,并不针对某个网站,所有发送到IIS的请求都会被捕捉并处理,导致IIS上的所有网站都遭受影响。所有JS和CSS样式的请求都会被被重写,导致请求了错误的路径,因此网站打开会异常。
使用Application Request Route做负载均衡还是挺好用的,之前也研究过其他方案,其实差距也不是很大,Windows平台上很多解决方法都还是非常好用的。
原创文章,作者:kepupublish,如若转载,请注明出处:https://blog.ytso.com/tech/pnotes/98896.html