2009-07-17 2 views
5

Кто-нибудь знает, как сообщить Apache в режиме обратного прокси-сервера перехватывать или отлавливать 302 (или 30x) ответы от бэкэнд сервер и перенаправить внутренне без отправки ответа 30x клиенту? В конечном итоге сервер backend, на который перенаправлен ответ, не будет доступен извне (или не указан в Apache conf).Режим обратного прокси-сервера Apache перехватывает или отлавливает 302 ответов с сервера backend и перенаправляет внутренне без отправки ответа 302 обратно клиенту


Моя ситуация:
меня 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 траппер» особенность, которая была бы хорошо, если существующие, но до сих пор ничего в Интернете о том, как сделать это не финансировать. Есть идеи?

+4

Вопросы конфигурации сервера, вероятно, получат гораздо лучший ответ на сервере serverfault.com –

ответ

0

В качестве обратного прокси-сервера Apache не сможет «блокировать ответы». Это не цензор. Вы могли бы написать что-то подобное себе.

0

, используя директиву ProxyPassReverse, web_server_A изменит заголовок местоположения, отправленный web_server_B, чтобы клиент не знал о нем.

Чтобы перехватить перенаправление с восходящего сервера, вы также можете редактировать заголовок местоположения. Например, «Исключить местоположение заголовка» будет отображаться страница ошибки 30X apache по умолчанию

 Смежные вопросы

  • Нет связанных вопросов^_^