2015-07-16 5 views
1

У меня есть домен, например example.com, и у меня также есть веб-сайт, размещенный в Azure, например mysite1.azurewebsites.net.Обратный прокси с ARR с использованием платформы Azure

Теперь весь трафик с сайта live.example.com отправляется на mysite1.azurewebsites.net. Мы указываем пользовательское доменное имя на наш веб-сайт Windows Azure. Я хочу использовать технологию обратного прокси для перенаправления некоторых запросов (например, запросов от клиента А) на mysite2.azurewebsites.net, а другие запросы от других клиентов по-прежнему идут на mysite1.azurewebsites.net. Все это должно произойти после входа в систему. (Live.example.com это Войти страница)

Client A   live.example.com ======> mysite2.azurewebsites.net 
Client B   live.example.com ======> mysite3.azurewebsites.net 
Client C   live.example.com ======> mysite4.azurewebsites.net 
Other Clients live.example.com ======> mysite1.azurewebsites.net 

ли это можно достичь с помощью обратного прокси-сервера с ARR? Если да, то как?

Спасибо

ответ

2

Этот блог объясняет, как вы можете сделать это http://ruslany.net/2014/05/using-azure-web-site-as-a-reverse-proxy/

Подводя итог, на live.example.com вам нужно установить XDT преобразование, которое выглядит следующим образом

<?xml version="1.0"?> 
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform"> 
    <system.webServer> 
    <proxy xdt:Transform="InsertIfMissing" enabled="true" preserveHostHeader="false" reverseRewriteHostInResponseHeaders="false" /> 
    </system.webServer> 
</configuration> 

Тогда вы» вам нужно установить правило перезаписи URL, которое вам нужно. Если вы планируете использовать UserAgent, например, то, что говорит вам имя клиента, то это будет примерно так:

<configuration> 
    <system.webServer> 
    <rewrite> 
     <rules> 
     <rule name="ClientA"> 
      <match url="^(.*)$" /> 
      <conditions> 
       <add input="{HTTP_USER_AGENT}" pattern="Client A" /> 
      </conditions> 
      <action type="Rewrite" url="https://mysite2.azurewebsites.net/{R:1}" /> 
     </rule> 
     <rule name="ClientB"> 
      <match url="^(.*)$" /> 
      <conditions> 
       <add input="{HTTP_USER_AGENT}" pattern="Client B" /> 
      </conditions> 
      <action type="Rewrite" url="https://mysite3.azurewebsites.net/{R:1}" /> 
     </rule> 
     <rule name="ClientC"> 
      <match url="^(.*)$" /> 
      <conditions> 
       <add input="{HTTP_USER_AGENT}" pattern="Client C" /> 
      </conditions> 
      <action type="Rewrite" url="https://mysite4.azurewebsites.net/{R:1}" /> 
     </rule> 
     <rule name="Others" stopProcessing="true"> 
      <match url="^(.*)$" /> 
      <action type="Rewrite" url="https://mysite1.azurewebsites.net/{R:1}" /> 
     </rule> 
     </rules> 
    </rewrite> 
    </system.webServer> 
</configuration> 
+0

Спасибо, что ответили на этот вопрос. Мне потребуется некоторое время для его реализации. Я вернусь к обновлению. – Xiaosu

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

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