Apache httpd 根据响应标头进行条件重定向

Apache httpd 根据响应标头进行条件重定向

我们使用 Apache httpd 作为反向代理。在特殊情况下,当后端系统发生错误时,它会返回一个特殊的标头,例如X-错误=1(除了状态代码 500)。

是否有可能根据命名响应标头的存在重定向这些响应?例如,重定向到静态错误页面。不幸的是,无法返回不同于 500 的状态代码,这将解决所述问题。

答案1

抱歉,这个答案有些推测性。我认为这很难实现,但这里有一些可能的解决方案。

  1. 您可以编写自己的 HTTP 处理程序mod_lua或类似程序。
  2. 您可以编写一个外部过滤器,使用它mod_external_filter来查找标头,然后适当地更改响应。这本质上是编写您自己的处理程序的“穷人”版本。
  3. 您可能能够使用ProxyErrorOverride它来更改 Apache 从后端获得 500 响应时显示的页面。如果您将其设置为 Apache 本地的 CGI,则可以测试标头是否存在并显示所需的响应,否则显示默认响应。

理论上,它们都做同样的事情。在将响应发送回客户端之前捕获它,然后根据需要进行修改。

相关内容