2016-05-03 4 views
1

In Microsoft Azure habe ich zwei virtuelle Linux-Maschinen (One ist Ubuntu, ein anderer ist CentOS), die denselben RESTful-Service ausführen. Diese zwei virtuellen Maschinen werden im selben vnet ausgeführt.Wie kann ich meine Webanwendung in Windows Azure so konfigurieren, dass die Anforderungen basierend auf der Anforderungs-URL an verschiedene VMs umgeleitet werden?

Jetzt habe ich eine Web-Anwendung und möchte diese Web-App, die Client-Anfragen auf diese beiden virtuellen Maschinen, die Umleitung basierend auf dem Format der Anfrage-URL, zum Beispiel:

  • Wenn http://myapp.azurewebsite.com:8080/api/customers kommt in der Anfrage wird an Ubuntu-Server weitergeleitet
  • Wenn http://myapp.azurewebsite.com:8080/api/orders kommt in dem Antrag sollte

auf CentOS-Server weitergeleitet Wie kann ich dies in Azure tun?

Danke!

Antwort

0

Azure-Webanwendung wird auf IIS ausgeführt. Sie können das URL-Rewriting verwenden, um Regeln in Web.config zu erstellen, um eine URL in eine andere URL umzuschreiben.

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    <system.webServer> 
     <rewrite> 
      <rules> 
       <rule name="Redirect request to Ubuntu"> 
        <match url=".*" /> 
        <conditions> 
         <add input="{HTTP_HOST}" pattern="^www.myapp.azurewebsite.com:8080/api/customers$" /> 
        </conditions> 
        <action type="Redirect" url="http://ubuntu-server/{R:0}" redirectType="Permanent" /> 
       </rule> 
       <rule name="Redirect request to CentOS"> 
        <match url=".*" /> 
        <conditions> 
         <add input="{HTTP_HOST}" pattern="^www.myapp.azurewebsite.com:8080/api/orders$" /> 
        </conditions> 
        <action type="Redirect" url="http://CentOS-server/{R:0}" redirectType="Permanent" /> 
       </rule>   
      </rules> 
     </rewrite> 
    </system.webServer> 
</configuration> 
+0

Dies scheint eine gute Idee zu sein. Ich werde es versuchen. Wenn ich die Anfrage nicht nur basierend auf der URL verteilen muss, sondern auch auf der Arbeitslast der VM basieren muss, was muss ich in Azure tun, um dies zu erreichen? –

+0

Gegenwärtig wird für zwei VMs jede Anforderung an die bestimmte VM umgeleitet, sodass keine Arbeitslastlösung hinzugefügt werden muss. Aber wenn Sie mehr als zwei VMs haben und mehrere VMs auf dieselbe Anfrage antworten könnten, könnten Sie [load balancer] (https://azure.microsoft.com/en-us/documentation/articles/load-balancer-overview/). – Steven

1

einen Blick auf Azure Application Gateway nehmen, die eine Schicht 7 äusserlichen Verkleidung zum Lastenausgleich ist. Es hat verschiedene Funktionen, die Sie nützlich finden könnten.

Entsprechend Ihrer Anforderung können Sie mit dem Anwendungsgateway Serverpools erstellen, für die Anforderungen gemäß URL an sie gerichtet werden. Weitere Informationen zur Einrichtung finden Sie unter "Create an application gateway using URL based routing".

enter image description here

Verwandte Themen