Обратный прокси-сервер IIS для отдельных веб-приложений - PullRequest
0 голосов
/ 28 октября 2019

Мое веб-приложение использует набор API;давайте называть их клиентами, заказами и продуктами. Они размещены на наших серверах разработчиков. Когда мне нужно внести какие-либо изменения, я обычно настраиваю свой клиентский клиент для размещения приложения и всех API локально и работаю над своими вещами, чтобы не мешать остальным членам команды.

Болевая точкадля меня здесь то, что мне нужно дублировать все API и постоянно обновлять их, чтобы быть в курсе версии master веб-приложения: Моя задача может заключаться в том, чтобы изменить что-то, связанное с API клиента, но устаревшая локальная версия API продуктов может нарушить работу веб-приложения.

Чего я хотел бы добиться, так это чтобы мой локальный IIS принимал запросы, направленные на API, а затем проверял пользовательский заголовокчтобы определить, должен ли запрос обслуживаться локально или перенаправляться на сервер разработки, что-то вроде этого:

if (Request.Path.Value.StartsWith(Request.Headers["x-custom-header-with-name-of-locally-hosted-api"]))
{
    // don't forward
}
else
{
    // forward!
}

Я рассмотрел функции маршрутизации запросов приложений (ARR) и перезаписи URL-адресов в IIS, но оникажется, не предлагают возможность применять условия на основе заголовка.

Возможно ли даже достичь моей цели с помощью этих features?

Кроме того, настраиваемые параметры модуля перезаписи URL, предоставляемые интерфейсами IRewriteProvider и IProviderDescriptor, кажутся довольно статичными в том смысле, что они облегчают кэширование перезаписей и, по-видимому, не дают возможности оценивать отдельные элементы. запросов.

Есть ли какие-то другие интерфейсы, которые я должен изучить, которые могли бы помочь?

Примечание: Причина, по которой я хочу избегать простого выполнения этого в конфигурации путем явного нацеливания на разработчикаСерверы в качестве хостов для этого я хочу иметь возможность решать это для каждого запроса, а не для экземпляра приложения.

-S

...