如何使用 mod_wsgi 配置 Apache 以便错误消息来自应用程序?

如何使用 mod_wsgi 配置 Apache 以便错误消息来自应用程序?

我已经使用 mod_wsgi 在 Apache2 中部署了 WSGI 应用程序。

该应用程序的设计使得如果用户在表单中提供的数据无效,它将使用 400 响应代码进行响应。响应还包含突出显示表单和无效字段的 HTML,以便用户可以更正数据。

使用 Waitress 等开发服务器时,此方法可以完美运行。但是,当使用相当标准的配置部署在 Apache 中时,Apache 会吞下 HTML,从而妨碍客户端纠正其错误的能力。

有没有办法配置 Apache 以便错误消息来自 WSGI 应用程序?

答案1

默认情况下,它应该始终传回来自 WSGI 应用程序的响应。

我认为只有两种情况会导致这种情况发生。

首先,您使用的是 mod_wsgi 守护进程模式,并为 mod_wsgi 设置了一个模糊的指令,该指令甚至未在 mod_wsgi 文档中列出,称为 WSGIErrorOverride。这将允许 Apache 本身覆盖指定了 ErrorDocument 指令的任何错误响应。

第二种是,您安装了一些特殊的 Apache 模块,它实现了一个输出过滤器,当它看到某些 HTTP 错误响应时,它会动态地替换响应。

我实际上不知道有任何标准 Apache 模块可以执行后者,尽管从技术上讲是可行的。您是否可能在同一个 Apache 安装上运行 PHP,因为它可以作为输出过滤器运行,我猜它可能已被设置为覆盖响应。

无论如何,您能否描述一下 Apache 配置中的 mod_wsgi 部分。

相关内容