Я развернул приложение WSGI в Apache2 с помощью mod_wsgi.
Приложение сделано так, что оно отвечает кодом ответа 400, если данные, предоставленные пользователем в форме, недействительны. Ответ также содержит HTML-код с выделенной формой и недопустимыми полями, чтобы пользователь мог исправить данные.
Это работает безупречно с использованием серверов разработки, таких как Waitress. Но при развертывании в Apache с вполне стандартной конфигурацией; Apache «проглатывает» HTML и тем самым ограничивает возможность клиента исправить свою ошибку.
Есть ли способ настроить Apache так, чтобы сообщения об ошибках приходили из приложения WSGI?
По умолчанию он всегда должен возвращать ответ от приложения WSGI.
Есть только два способа увидеть это иначе.
Во-первых, вы используете режим демона mod_wsgi и установили непонятную директиву для mod_wsgi, которая даже не указана в документации mod_wsgi, которая называется WSGIErrorOverride. Это позволило бы самому Apache переопределить любой ответ об ошибке, для которого была указана директива ErrorDocument.
Во-вторых, у вас установлен специальный модуль Apache, который реализует выходной фильтр, который заменяет ответ на лету, когда он видит определенные ответы об ошибках HTTP.
На самом деле я не знаю ни одного стандартного модуля Apache, который поддерживает последнее, хотя это технически возможно. Возможно, вы запускаете PHP в той же установке Apache, потому что он может работать как выходной фильтр, возможно, я предполагаю, что он был настроен для переопределения ответа.
В любом случае, не могли бы вы описать части mod_wsgi вашей конфигурации Apache.