我目前正在研究(仅限个人用途)是否可以编写位于HTTP.sys下的过滤器驱动程序以拦截请求。
我们的想法是调查是否可以覆盖503 Service Unavailable屏幕(因为显然,它无法覆盖或更改它)。
问题是我不确定HTTP.sys是如何实现的,它是否是位于某个网络驱动程序下的过滤器驱动程序,或者某些虚拟设备是否使用了HTTP.sys。
答案 0 :(得分:0)
我认为无法从http 2 api reference的http.sys.Looking覆盖503错误响应,我们只能覆盖详细程度。 http.sys驱动程序侦听http请求并将其传递给正在侦听IP:hostname:port组合的服务。
您可以从iis侧覆盖503,但不能从http.sys覆盖。所以,一个简单的技巧(不是那么好)是设置ARR + UrlRewrite反向代理,每当您的后端服务抛出503时,您可以抛出自定义503像this这样的前端。
www.example.com:80 => exampleweb:80 => localhost:8080(实际网站)。
你的实际网站是8080端口。如果它抛出503,那么你可以从exampleweb抛出自定义503
但是如果前端发生故障,这仍然会产生503错误,但如果它只是用作反向代理,那么这是不太可能的。正如我所说,这不是一个好方法,但可能比编写过滤器驱动程序更好。
答案 1 :(得分:0)
我相信IIS不允许你覆盖503(和其他一些人)......但是你可以'就是在它前面拍打httpd
并使用reverseproxy&重写模块以修改响应。
这样的事情: