Bereitstellung des Application Request Routing im CDN

von Won Yoo

Dieser Abschnitt des Dokuments bezieht sich auf Microsoft Application Request Routing Version 2 (Routing von Anwendungsanforderungen) für IIS 7 und höher.

Ziel

So konfigurieren Sie erfolgreich einen untergeordneten/Edge-Cacheknoten und einen übergeordneten Cacheknoten in einer 2-stufigen Cachehierarchiebereitstellung in einer Netzwerk-/Edge-Cachenetzwerkumgebung (CDN/ECN). Der Schwerpunkt dieser exemplarischen Vorgehensweise besteht darin, die URL-Neuschreibungsregeln für den untergeordneten/edge-Cacheknoten und den übergeordneten Cacheknoten zu verstehen. Diese exemplarische Vorgehensweise durchläuft schrittweise Anleitungen zum Einrichten der folgenden Konfiguration:

Diagram showing an overview of the connection between the origin server, parent nodes, child nodes, and S A N.

Einige der Highlights dieser Konfiguration sind:

  • Die Ursprungssuche erfolgt über den untergeordneten/edge-Cacheknoten.

    • Die Liste der Kunden (d. h. die Liste der zulässigen Ursprungsserver) wird explizit mithilfe einer Umschreibungszuordnung in URL-Umschreibung verwaltet.
    • Die Hostnamen, die in der Umschreibungszuordnung nicht gefunden werden, werden blockiert.
  • Der übergeordnete Cacheknoten ist größtenteils als Weiterleitungsproxy konfiguriert.

  • SAN ist für die Freigabe durch die untergeordneten/Edgecacheknoten konfiguriert.

    • Effektiv gibt es drei Cacheebenen:

      1. Untergeordneter/Edge-Cacheknoten.
      2. SAN.
      3. Übergeordneter Cacheknoten.

Voraussetzungen

In dieser exemplarischen Vorgehensweise wird davon ausgegangen, dass Sie mit den Konfigurationen für die Datenträgercache- und Cachehierarchieverwaltung in ARR Version 2 vertraut sind. Wenn dies noch nicht geschehen ist, wird dringend empfohlen, die folgende exemplarischen Vorgehensweisen einzusehen, bevor Sie fortfahren:

Wenn Routing von Anwendungsanforderungen Version 2 noch nicht installiert ist, kann es über diese Adresse herunterladen werden:

  • Microsoft Application Request Routing (Anwendungsanforderungsrouting) Version 2 für IIS 7 (x86) hier (https://download.microsoft.com/download/4/D/F/4DFDA851-515F-474E-BA7A-5802B3C95101/ARRv2_setup_x86.EXE).
  • Microsoft Application Request Routing (Anwendungsanforderungsrouting) Version 2 für IIS 7 (x64) hier (https://download.microsoft.com/download/3/4/1/3415F3F9-5698-44FE-A072-D4AF09728390/ARRv2_setup_x64.EXE).

Führen Sie die im Artikel Installieren von Routing von Anwendungsanforderungen Version 2 beschriebenen Schritte aus, um ARR Version 2 zu installieren.

Konfigurieren des Untergeordneten/Edge-Cacheknotens

Schritt 1 - Konfigurieren des Datenträgercaches

Konfigurieren und aktivieren Sie den Datenträgercache, indem Sie den Artikel Installieren von Anwendungsanforderungsrouting, Version 2, befolgen. In diesem Artikel wird auch erläutert, wie Sie ein SAN so konfigurieren, dass es als sekundärer Cachelaufwerkspeicherort verwendet wird.

Schritt 2: Definieren einer Serverfarm für übergeordnete Cacheknoten

Definieren Sie eine Serverfarm, und fügen Sie übergeordnete Cacheknoten hinzu, indem Sie den Artikel Cachehierarchieverwaltung mithilfe von Anwendungsanforderungsrouting befolgen.

Schritt 3: Erstellen zusätzlicher URL-Neuschreibungsregeln für untergeordnete/Edge-Cacheknoten

An diesem Punkt wurde mithilfe von myParentCacheNodes als Name der Serverfarm die folgende URL-Umschreibungsregel in der Datei applicationHost.config geschrieben, die sich unter %windir%\system32\inetsrv\config\ befindet:

<rewrite>
   <globalRules>
      <rule name="ARR_myParentCacheNodes_loadbalance" patternSyntax="Wildcard" stopProcessing="true">
         <match url="*" />
         <action type="Rewrite" url="http://myParentCacheNodes/{R:0}" />
      </rule>
   </globalRules>
</rewrite>

Die oben genannte Regel reicht nicht für eine CDN/ECN-Bereitstellung aus, da die Cacheknoten gestuft sind und die nächste Ebene von Cacheknoten (d. h. die übergeordneten Cacheknoten) nicht wissen würde, wie die Ursprungsserver gefunden werden, wenn ein Cachefehler auf der übergeordneten Cacheebene auftritt.

In dieser exemplarischen Vorgehensweise wird das Problem behoben, indem der untergeordnete Cacheknoten dem Ursprungsserver zugeordnet wird, bevor die Anforderung an den übergeordneten Cacheknoten weitergeleitet wird. Es gibt zwei häufigste Methoden, auf denen die Ursprungsserver basierend auf der URL zugeordnet werden, die der untergeordnete Cacheknoten empfängt:

  1. Der Kunde des CDN/ECN wird als Unterdomäne angegeben. In diesem Fall kann es viele Hostnamenbindungen an dieselbe IP-Adresse des untergeordneten Cacheknotens geben.
    Beispiele sind unter anderem http://customer1.mycnd.net/ und http://customer2.mycdn.net/.
  2. Der Kunde des CDN/ECN wird als erster Pfad in der URL angegeben.
    Beispiele sind unter anderem http://static.mycdn.net/customer1/ und http://static.mycdn.net/customer2/.

In dieser exemplarischen Vorgehensweise wird das erste Beispiel für die Demo verwendet. Ähnliche Regeln können auch geschrieben werden, um das zweite Szenario zu aktivieren.

  1. Definieren Sie die URL-Umschreibungszuordnungen, die zum Nachschlagen des Hostnamens des Ursprungsservers verwendet werden können. Starten Sie den IIS-Manager.

  2. Wählen Sie das Serverstammverzeichnis aus und erweitern Sie es. Dies ist Ihr untergeordneter Cacheknoten (Edge).

    Screenshot showing the child cache node expanded.

  3. Doppelklicken Sie auf URL umschreiben.

  4. Klicken Sie im Bereich Aktionen auf Ansicht Umschreibungszuordnung.

    Screenshot of the Actions pane showing the View Rewrite Maps option.

  5. Klicken Sie im Bereich Aktionen auf Umschreibungszuordnung hinzufügen.

    Screenshot of the Actions pane showing the Add Rewrite Map option.

  6. Benennen Sie im Dialogfeld Umschreibungszuordnung hinzufügen die Umschreibungszuordnung, OriginServers.

    Screenshot of the Add rewrite map dialog showing OriginServers in the input box.

  7. In der Umschreibungszuordnung identifizieren Sie explizit die Zuordnung zwischen dem Hostnamen, den der untergeordnete Cacheknoten empfängt, und den entsprechenden Ursprungshostnamen. Klicken Sie im Bereich Aktionen auf Zuordnungseintrag hinzufügen....

    Screenshot of the Actions menu showing the Add Mapping Entry option.

  8. Fügen Sie im Dialogfeld Zuordnungseintrag hinzufügen den Hostnamen hinzu, den der untergeordnete Cacheknoten empfängt, und den Ursprungshostnamen. Im folgenden Beispiel empfängt der untergeordnete ARR-Cacheknoten customer1.mycdn.net als Hostnamenheader. Der entsprechende Ursprungsserver ist images.customer1.com.

    Screenshot of the Add Mapping Entry dialog with the example information entered.

  9. Wiederholen Sie Schritt 8 so oft wie nötig, um alle Kunden einzuschließen, für die Ihr CDN/ECN Dienste bereitstellt. So können Sie die explizite Liste Ihrer Kunden verwalten, um sicherzustellen, dass Ihr Dienst nur Ihren Kunden zur Verfügung gestellt wird.

  10. Um die Kunden zu blockieren, die sich nicht in der Umschreibzuordnungsliste befinden, legen Sie den Standardwert dieser Umschreibungszuordnung auf # fest, wobei es sich um ein unzulässiges Zeichen handelt, das nicht als Teil des Hostnamenheaders pro RFC verwendet werden kann. Klicken Sie im Bereich Aktionen auf Zuordnungseinstellungen bearbeiten....

    Screenshot of the Actions menu.

  11. Geben Sie im Dialogfeld Zuordnung bearbeiten als Standardwert # für diese Umschreibungszuordnung ein.

    Screenshot of the Edit Rewrite Map dialog. The character # is in the Default value to use when key is not found in the map input box. OK is selected.

  12. Schreiben Sie den Hostnamenheader mit den Regeln neu, die in der OriginServers-Zuordnung konfiguriert wurden. Wenn ein Cachefehler auftritt und die Anforderung an den übergeordneten Cacheknoten weitergeleitet wird, weist die Anforderung den Hostnamen auf, der dem Ursprungsserver entspricht. Aus diesem Grund wird der übergeordnete Cacheknoten größtenteils als Weiterleitungsproxy konfiguriert. Wenn beim übergeordneten Cacheknoten ein Cachefehler auftritt, wird die Anforderung einfach basierend auf dem Hostnamenheader, den der übergeordnete Cacheknoten empfängt, an den Ursprungsserver weitergeleitet.

  13. Suchen Sie in der URL-Benutzeroberfläche nach der Regel. In dieser exemplarischen Vorgehensweise sollte der Name der Regel ARR_myParentCacheNodes_loadbalancesein.

    Screenshot showing the example rule settings.

  14. Wählen Sie die Regel aus, und klicken Sie im Bereich Aktionen auf Bearbeiten.

  15. Klicken Sie auf Bedingungen hinzufügen, um zwei Regeln hinzuzufügen.

  16. Die erste Regel verwendet die OriginServers neu schreiben, die Sie in Schritt 6 erstellt haben. Die folgende Regel entspricht dem Hostheader als Schlüssel, um den Einträgen in OriginServers zu entsprechen:

    Screenshot of the Add Condition dialog showing origin server data with Pattern is set to *.

  17. Die zweite Regel legt den Standardwert als # fest, wenn der Hostheader nicht mit den Einträgen in OriginServersübereinstimmt. Wie oben erwähnt, ist # kein gültiges Zeichen und kann nicht als Hostname verwendet werden. Die folgende Regel wird später verwendet, um sicherzustellen, dass nur die Kunden (wie durch Hostnamen dargestellt) in OriginServers von ARR gewartet werden:

    Screenshot of the Add Condition dialog with Pattern set to the default.

  18. Wählen Sie Erfassen von Gruppen über Bedingungen hinweg aus.

  19. Klicken Sie auf Servervariablen, um die HTTP_HOST-Werte so festzulegen, dass sie den oben genannten Bedingungen entsprechen.

  20. Geben Sie die folgenden Werte ein, um HTTP_HOST zurückzusetzen:

    Screenshot of the Server Variables dialog.

  21. Klicken Sie zum Speichern der Änderungen auf OK.

  22. Klicken Sie im Bereich Aktionen auf Anwenden, um die Änderungen zu speichern.

  23. Um zu überprüfen, ob die richtigen Regeln geschrieben wurden, öffnen Sie die Datei applicationHost.config im Editor. Die Konfigurationsdatei befindet sich unter %windir%\system32\inetsrv\config\.

  24. Suchen Sie die URL-Umschreibregel für die Serverfarm, myParentCacheNodes. Die Anzeige sollte folgendermaßen aussehen:

    <rewrite>
       <globalRules>
          <rule name="ARR_myParentCacheNodes_loadbalance" patternSyntax="Wildcard" stopProcessing="true">
             <match url="*" />
             <conditions trackAllCaptures="true">
                <add input="{OrigServers:{HTTP_HOST}}" pattern="*" />
                <add input="{C:1}" negate="true"  pattern="#" />
             </conditions>
             <serverVariables>
                <set name="HTTP_HOST" value="{C:1}" replace="true" />
             </serverVariables>
             <action type="Rewrite" url="http://myParentCacheNodes/{R:0}" />
          </rule>
       </globalRules>
    </rewrite>
    
  25. Dringend empfohlen. Um Anforderungen zu blockieren, die nicht mit den in der obigen Umschreibungszuordnung definierten Hostnamen übereinstimmen, erstellen Sie eine Standard-URL-Umschreibregel, die eine 400-Antwort an solche Anforderungen sendet.

    Starten Sie den IIS-Manager.

  26. Wählen Sie das Serverstammverzeichnis aus und erweitern Sie es. Dies ist Ihr untergeordneter Cacheknoten (Edge).

    Screenshot showing a server expanded.

  27. Doppelklicken Sie auf URL umschreiben.

  28. Wählen Sie im Bereich Aktionen die Option Regeln hinzufügen aus.

    Screenshot of the Actions menu showing the Add Rules option.

  29. Wählen Sie im Dialogfeld Regel(n) hinzufügen die Option Leere Regel aus.

    Screenshot of the Add rules dialog with Blank rule selected.

  30. Geben Sie die folgenden Werte ein, und speichern Sie die Regel:
    Name: Nicht mein Kunde
    In Gebrauch: Platzhalter
    Muster: *
    Aktionstyp: Benutzerdefinierte Antwort
    Statuscode: 400
    Unterstatuscode: 0

    Screenshot showing the rules variable dialog.

  31. Die Reihenfolge der Regeln ist wichtig. Die URL-Umschreibregeln werden von oben nach unten verarbeitet. Wenn der eingehende Hostname in diesem Beispiel mit einem der Hostnamen übereinstimmt, der in der obigen Umschreibungszuordnung angegeben ist, wird die erste Regel, ARR_myParentCacheNodes_Loadbalance, ausgeführt. Wenn der Name des eingehenden Hostnamens keinem der Hostnamen entspricht, die in der obigen Umschreibungszuordnung definiert sind, wird die zweite Regel Nicht mein Kunde ausgeführt.

    Screenshot showing 2 rules.

  32. Die Konfiguration des untergeordneten/Edge-Cacheknotens ist abgeschlossen.

Um die Konfiguration zusätzlicher untergeordneter Cacheknoten zu optimieren, kann eine freigegebene Konfiguration verwendet werden, sodass nur ein Ort zum Verwalten der Konfiguration des untergeordneten Cacheknotens vorhanden ist. Andernfalls müssen die oben genannten Konfigurationsänderungen einzeln auf allen untergeordneten Cacheknoten in der CDN/ECN-Umgebung vorgenommen werden. Weitere Informationen zur gemeinsamen Konfiguration finden Sie im Artikel Freigegebene Konfiguration.

Konfigurieren des übergeordneten Cacheknotens

Es gibt zwei Möglichkeiten, ARR als übergeordneten Cacheknoten zu konfigurieren:

  1. Richten Sie ARR als Weiterleitungsproxy ein.
  2. Richten Sie ARR als „Reverse“-Proxy mit der Umschreibungszuordnung ein.

Selbst bei der zweiten oben genannten Option schreiben die Umschreibungszuordnungen einfach den eingehenden Hostnamen mit demselben Wert um, wodurch er effektiv zu einem Weiterleitungsproxy wird. Die Umschreibungszuordnung wird verwendet, um die Liste der Hostnamen explizit zu konfigurieren, die der übergeordnete Cache akzeptiert, ähnlich wie der oben konfigurierte untergeordnete Cacheknoten. In diesem zweiten Teil der exemplarischen Vorgehensweise wird der übergeordnete Cacheknoten mithilfe der ersten Option als einfacher Weiterleitungsproxy konfiguriert.

Schritt 1 - Konfigurieren des Datenträgercaches

Konfigurieren und aktivieren Sie den Datenträgercache, indem Sie den Artikel Konfigurieren und Aktivieren des Datenträgercaches im Artikel Anwendungsanforderungsrouting ausführen.

Schritt 2 - Konfigurieren von ARR als Weiterleitungsproxy

  1. Aktivieren Sie ARR als Proxy. Starten Sie den IIS-Manager.

  2. Diese Konfiguration umfasst keine Serverfarmen. Alle Einstellungen werden auf Serverebene ausgeführt.

    Screenshot showing the server with expanded selections. The server name is highlighted.

  3. Doppelklicken Sie auf Application Request Routing Cache.

    Screenshot showing the connections and main panes. The main pane shows the server function icons.

  4. Klicken Sie im Bereich Aktionen auf Serverproxyeinstellungen.

    Screenshot of the Actions pane showing the Server Proxy Settings option.

  5. Aktivieren Sie das Kontrollkästchen Proxy aktivieren und klicken Sie dann auf Anwenden. Sie haben ARR gerade als Proxy auf Serverebene aktiviert.

  6. Um ARR in einen Weiterleitungsproxy umzuwandeln, klicken Sie im Navigationsbereich auf den Serverknoten.

    Screenshot showing navigation options.

  7. Doppelklicken Sie auf URL umschreiben.

  8. Wählen Sie im Bereich Aktionen die Option Regeln hinzufügen aus.

    Screenshot of the Actions pane showing the Add Rules option.

  9. Wählen Sie im Dialogfeld Regel(n) hinzufügen die Option Leere Regel aus.

    Screenshot showing the Add rules dialog. The Blank rule icon is highlighted.

  10. Geben Sie die folgenden Werte ein, und speichern Sie die Regel:
    Name: Weiterleitungsproxy
    In Gebrauch: Platzhalter
    Muster: *
    Bedingungen:
    Input: {HTTP_HOST}
    Typ: Passt zum Muster
    Muster: *
    Aktionstyp: Umschreiben
    URL umschreiben: http://{C:1}/{R:0}

    Screenshot showing the dialog with the example values.

  11. Die Konfiguration des übergeordneten Cacheknotens ist abgeschlossen.

    Um die Konfiguration zusätzlicher übergeordneter Cacheknoten zu optimieren, kann eine freigegebene Konfiguration verwendet werden, sodass nur ein Ort zum Verwalten der Konfiguration des übergeordneten Cacheknotens vorhanden ist. Andernfalls müssen die oben genannten Konfigurationsänderungen einzeln auf allen übergeordneten Cacheknoten in der CDN/ECN-Umgebung vorgenommen werden. Weitere Informationen zur freigegebenen Konfiguration finden Sie im folgenden Artikel .

Zusammenfassung

Sie haben jetzt erfolgreich untergeordnete und übergeordnete Cacheknoten in einer 2-stufigen Cachehierarchie-CDN/ECN-Umgebung mit erweiterten URL-Umschreibungsregeln konfiguriert. Um die Funktionalität zu überprüfen, können Sie Schritt 4 und Schritt 5 im Artikel Konfigurieren und Aktivieren des Datenträgercaches in Anwendungsanforderungsrouting befolgen. Wenn Fehler auftreten, aktivieren Sie Regeln für die Fehleranforderungsablaufverfolgung, indem Sie die Schritte im Artikel Verwenden von Regeln für die Fehleranforderungsablaufverfolgung zur Problembehandlung beim Anwendungsanforderungsrouting ausführen.

Weitere exemplarische Vorgehensweisen für ARR Version 2 finden Sie in den Dokumenten im Artikel Routing von Anwendungsanforderungen Version 2 – Übersicht.