Кто-нибудь знает, как заставить Apache в режиме обратного прокси перехватывать или перехватывать 302 (или 30x) ответа от внутреннего сервера и перенаправлять их внутренне, не отправляя 30x ответ клиенту?
В конечном счете, внутренний сервер, на который перенаправляется ответ, не будет доступен извне (или не указан в Apache conf).
Моя ситуация:
У меня есть web_server_A и web_server_B, прослушивающие порты 6666 и 7777. Эти порты недоступны извне, но доступны изнутри.
В конечном итоге я могу изменить поведение web_server_A, но не поведение web_server_B.
Apache прослушивает порты 80/443, доступные извне, и действует как обратный прокси-сервер, отправляющий запросы на адрес web_server_ {A, B} .example.com на web_server_ {A, B}
Клиент запрашивает у Apache web_server_A.example.com/foo. Apache передает запрос web_server_A, который делает некоторые вещи, а затем отправляет обратно Apache HTTP / 302-ответ, указывающий на web_server_B.example.com/bar/secret_token. Apache отправляет ответ 302 клиенту, который затем отправляет Apache HTTP-запрос для web_server_B.example.com/bar/secret_token. Apache передает запрос web_server_B, который что-то отвечает (обычно он отправляет большой файл).
Моя проблема:
Я не хочу, чтобы клиент знал о URL web_server_B.example.com/bar/secret_token, и в конечном итоге я не хочу, чтобы web_server_B был доступен извне.
web_server_A может сделать запрос к web_server_B, а затем отправить ответ от web_server_B без выдачи 302 ответа. Но ответ от web_server_B может занять некоторое время, может быть довольно большим, и web_server_A не должен тратить слишком много времени на любой запрос (у него нет возможности обрабатывать большие файлы).
Так что я подумал о функции «302 trapper», которая была бы полезна, если бы существовала, но до сих пор не нашла в Интернете ничего о том, как это сделать. Есть идеи?