Как настроить правила перезаписи одного URL / прокси в IIS? - PullRequest
0 голосов
/ 17 мая 2019

Архитектура: Пользователь -> Сервер ARR -> LB -> 2 веб-сервера, обслуживающих 2 разных сайта Обслуживание веб-сервера1 -> https://xxxx -green-xxxx-xxxx.net / xxx / xxx? Xx = xxxx , где зеленое ключевое слово находится в любом месте в доменном имени Обслуживание веб-сервера2 -> https://xxxx -yellow-xxxx-xxxx.net / xxx / xxx? Xx = xxxx , где желтое ключевое слово находится в любом месте в доменном имени

Требование: Формат запроса: https://xxxx -green-xxxx-xxxx.net / xxx / xxx? Xx = xxxx или желтый URL В ARR нам нужно отфильтровать URL с зеленым и желтым ключевым словом в URL и отправить его на соответствующий IP веб-сервера.

Но все мои запросы попадают только на домашнюю страницу. и даже я запутался, что смена хоста будет работать, но мне нужно дать IP, который отличается для каждого веб-сервера в LB

Мы установили это правило и получаем следующие результаты:

                <rule name="Green" enabled="true" stopProcessing="true">
                <match url="(.*xxx.net)(/.*)" />
                <conditions logicalGrouping="MatchAll" 
                 trackAllCaptures="false">
                    <add input="{HTTP_HOST}" pattern="green" />
                </conditions>
                <action type="Rewrite" url="https://xx.xxx.xx.xx/{R:2}" 
                 appendQueryString="true" />
                 </rule> 
                 Where R:2 is --> xxx/xxx?xx=xxxx

1 Ответ

0 голосов
/ 29 июня 2019

По вашему вопросу.

Для этого нужно написать пользовательское правило перезаписи.Поэтому сначала обратитесь к этой ссылке

. В ссылке вы можете обработать ваше требование и переписать на другой веб-сервер.

Поэтому, пожалуйста, выполните все шаги и напишите свою логику
Переписать (строковое значение) метод.

В этот метод необходимо передать URL-адрес вашего сервера из правил IIS и проверить с помощью условия, как показано ниже.

 public string Rewrite(string value)
  {
      if(value.Contains("green"))
        {
         return // your rewrite URL here
        }
      else if(value.Contains("yellow"))
        {
         return // your rewrite URL here
        }
    return value;
  }

Так что он работает в соответствии с вашим требованием.

...