Назад | Перейти на главную страницу

Apache выборочно запрашивает обратный прокси на новый сервер

Я перемещаю веб-приложение на новый набор серверов в другом центре обработки данных. В рамках периода бета-тестирования я хочу настроить старый сервер в качестве обратного прокси-сервера для некоторых запросов на основе шаблона в URL-адресе.

Например, если кто-то просит:

http://old.example.com/foo/bar?q=1

... Я хочу прозрачно предоставить им результаты

http://new.example.com/foo/bar?q=1

Перенаправления не будут работать, поскольку он используется в качестве API, и некоторые клиенты не следуют перенаправлениям должным образом (исправление клиентов не является вариантом). Кроме того, это должно работать как для запросов GET, так и для POST.

Список URL-адресов для прокси будет выборочным, например так что только "foo/*" запросы будут проксироваться, а остальные будут обслуживаться только old.example.com до окончательного переключения.

Является mod_proxy правильный путь? Я не могу найти никаких примеров, которые бы:

  1. Разрешить выборочное проксирование (например, /foo/bar проксируется, но /baz/ham не является),
  2. Пройдите весь путь и строку запроса, и
  3. Не изменяйте тело POST и все заголовки HTTP.

Любая помощь будет принята с благодарностью.

Из того, что вы описываете просто:

 ProxyPass /foo/ http://new.example.com/foo/

должно сработать. Все заголовки и запросы GET / POST должны просто пересылаться нормально. Вам может понадобиться соответствующий ProxyPassReverse в зависимости от ваших настроек и потребностей. Если вам нужно больше контроля над тем, какие URL-адреса проксируются, вы можете использовать:

 ProxyPassMatch [regex] [url]

В официальная документация довольно хорошо объясняет вещи. Если вы пробовали использовать такой прокси, и он не работает, новый вопрос с более конкретными подробностями о том, что вы пробовали, и в чем именно заключается проблема, может дать вам лучшие результаты.