HTTP.sys是过滤器(下/高)还是函数驱动程序(PDO的FDO)?



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

这个想法是调查是否可以覆盖503服务不可用屏幕(因为显然,不可能覆盖或更改它(。

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

我认为不可能覆盖来自http.sys的503错误响应.查看http 2 api引用,我们只能覆盖冗长。 http.sys 驱动程序侦听 http 请求并将其传递给正在侦听 IP:hostname:port 组合的服务。

您可以从 IIS 端覆盖 503,但不能从 http.sys 覆盖 503。所以一个简单的技巧(不是那么好(是设置一个 ARR + UrlRewrite 反向代理,每当后端服务抛出 503 时,你可以像这样从前端抛出自定义 503。

www.example.com:80 => 例子网站:80 => 本地主机:8080(实际网站(。

您的实际站点位于端口 8080 上。如果它抛出 503,那么你可以从 exampleweb 抛出自定义 503

但是,如果前端出现故障,这仍然会给出 503 错误,但如果它只是用作反向代理,那么这是非常不可能的。正如我所说,这绝对不是一个好方法,但可能比编写过滤器驱动程序更好。

我相信IIS不允许你覆盖503(和其他一些(...但是你"可以"做的是在它前面拍httpd,并使用反向代理和重写模块来修改响应。

像这样:

  • 将 IIS 设置为侦听某些内部端口,例如 8080、4434.. 您需要的任何内容
  • 在其前面设置 httpd 以侦听所需的端口,例如 80 和 443
  • 设置反向代理规则以相应地转发所有请求,例如 80->8080 和 443->4434
  • 设置重写规则以修改响应(如果响应为 503(

相关内容

  • 没有找到相关文章

最新更新