Я перемещаю веб-приложение на новый набор серверов в другом центре обработки данных. В рамках периода бета-тестирования я хочу настроить старый сервер в качестве обратного прокси-сервера для некоторых запросов на основе шаблона в 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
правильный путь? Я не могу найти никаких примеров, которые бы:
/foo/bar
проксируется, но /baz/ham
не является),Любая помощь будет принята с благодарностью.
Из того, что вы описываете просто:
ProxyPass /foo/ http://new.example.com/foo/
должно сработать. Все заголовки и запросы GET / POST должны просто пересылаться нормально. Вам может понадобиться соответствующий ProxyPassReverse
в зависимости от ваших настроек и потребностей. Если вам нужно больше контроля над тем, какие URL-адреса проксируются, вы можете использовать:
ProxyPassMatch [regex] [url]
В официальная документация довольно хорошо объясняет вещи. Если вы пробовали использовать такой прокси, и он не работает, новый вопрос с более конкретными подробностями о том, что вы пробовали, и в чем именно заключается проблема, может дать вам лучшие результаты.