Мы используем Apache httpd в качестве обратного прокси. В особых случаях, когда в бэкэнд-системе возникает ошибка, он возвращает специальный заголовок, например X-ошибка = 1 (помимо кода состояния 500).
Можно ли каким-то образом перенаправить эти ответы на основе наличия именованного заголовка ответа? Например, перенаправление на страницу статической ошибки. К сожалению, невозможно вернуть код состояния, отличный от 500, что решило бы описанную проблему.
Прошу прощения, поскольку этот ответ несколько умозрительный. Думаю, этого будет довольно сложно добиться, но вот несколько возможных решений.
mod_lua
или похожие.mod_external_filter
чтобы найти заголовок, а затем соответствующим образом изменить ответ. По сути, это вариант написания собственного обработчика для бедных людей.ProxyErrorOverride
для изменения страницы, отображаемой Apache, когда он получает ответ 500 от бэкэнда. Если вы установите для него CGI, локальный для Apache, вы можете проверить наличие заголовка и отобразить желаемый ответ, в противном случае отобразить ответ по умолчанию.Теоретически все они делают одно и то же. Захватите ответ, прежде чем он будет отправлен обратно клиенту, а затем измените его при необходимости.