HTTP.sys是过滤器(下/上)还是功能驱动程序(PDO的FDO)?

时间:2017-08-27 18:31:02

标签: http iis filter driver http.sys

我目前正在研究(仅限个人用途)是否可以编写位于HTTP.sys下的过滤器驱动程序以拦截请求。

我们的想法是调查是否可以覆盖503 Service Unavailable屏幕(因为显然,它无法覆盖或更改它)。

问题是我不确定HTTP.sys是如何实现的,它是否是位于某个网络驱动程序下的过滤器驱动程序,或者某些虚拟设备是否使用了HTTP.sys。

2 个答案:

答案 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&重写模块以修改响应。

这样的事情:

  • 设置IIS以侦听某些内部端口,例如。 8080,4434 ..无论你需要什么
  • 在它前面设置httpd以侦听你想要的端口,例如。 80和443
  • 设置reverseproxy规则以相应地转发所有请求,例如。 80-> 8080和443-> 4434
  • 设置rewriterules以修改响应(如果它是503