Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
von IIS-Team
Übersicht
Dieses Thema führt den Leser durch die Schritte zum Konfigurieren des Anwendungsanforderungsroutings zum Lastenausgleich von HTTP-Anforderungen, um hohe Verfügbarkeit und Skalierbarkeit zu erzielen. In der exemplarischen Vorgehensweise werden auch einige Kernfunktionen gezeigt, wie die Anwendungsanforderungsweiterleitung die Gesundheit der Inhaltsserver überwacht und Anfragen von einem Client einem Inhaltsserver zuordnet.
Ziel
Um HTTP-Anfragen über mehrere Inhaltsserver mit Application Request Routing zu balancieren, wie unten dargestellt:
Voraussetzungen
Für diese Anleitung sind folgende Voraussetzungen erforderlich:
- IIS 7.0 oder höher auf Windows 2008 (jede SKU) oder neuer.
- Microsoft Application Request Routing Version 1 und abhängige Module.
- Mindestens zwei Inhaltsserver mit Arbeitswebsites und Anwendungen.
Führen Sie die in diesem Dokument beschriebenen Schritte aus, um anwendungsanforderungsrouting zu installieren.
Eine weitere Voraussetzung ist, dass der Leser eine Serverfarm mit den Schritten definiert und konfiguriert hat, die in "Definieren und Konfigurieren einer ARR-Servergruppe (Application Request Routing) beschrieben sind.
Schritt 1: Überprüfen von REGELN zum Neuschreiben von URLs
Vorausgesetzt, die Serverfarm wurde mit den Schritten erstellt, die in der Servergruppe "Anwendungsanforderungsrouting ( ARR) definieren und konfigurieren" beschrieben sind, wurden die URL-Neuschreibregeln bereits für ein einfaches Lastenausgleichsszenario erstellt.
So überprüfen Sie, ob URL-Regeln mithilfe der Benutzeroberfläche neu geschrieben werden:
- Starten Sie DEN IIS-Manager.
- Wählen Sie die Serverfarm myServerFarm aus, die in define and Configure an Application Request Routing (ARR) Server Group erstellt wurde.
- Die folgenden Symbole werden angezeigt:
- Doppelklicken Sie auf Routingregeln.
- Stellen Sie sicher, dass das Kontrollkästchen " URL neu schreiben" zum Überprüfen eingehender Anforderungen aktiviert ist.
- SSL-Offloading ist standardmäßig aktiviert. Wenn dieses Feature aktiviert ist, wird die gesamte Kommunikation zwischen dem ARR-Server und den Anwendungsservern im Klartext geführt, selbst bei HTTPS-Anforderungen von Clients an den ARR-Server. Wenn sowohl der ARR-Server als auch die Anwendungsserver in einem vertrauenswürdigen Netzwerk bereitgestellt werden, z. B. innerhalb desselben Rechenzentrums, wird durch die Aktivierung des SSL-Offloads keine Sicherheit geopfert. Außerdem kann die Aktivierung dieses Features dazu beitragen, die Serverressourcen auf den Anwendungsservern zu maximieren, da sie keine Zyklen beim Verschlüsseln und Entschlüsseln von Anforderungen und Antworten ausgeben müssen.
Deaktivieren Sie das Kontrollkästchen SSL-Offloading und klicken Sie dann auf Übernehmen. - Öffnen Sie einen Browser, und senden Sie mehrere Anforderungen an den ARR-Server.
- Um zu überprüfen, ob die Anforderungen gleichmäßig auf die Anwendungsserver lastverteilt werden, wählen Sie "myServerFarm" aus. Doppelklicken Sie auf "Überwachung und Verwaltung".
- Überprüfen Sie in der Dashboardansicht, ob die Anforderungen gleichmäßig verteilt werden.
So überprüfen Sie die URL-Umschreibungsregeln mithilfe der Befehlszeile:
Öffnen Sie eine Eingabeaufforderung mit Administratorrechten .
Navigiere zu
%windir%\system32\inetsrv.Um sicherzustellen, dass die URL-Neuschreibregeln ordnungsgemäß erstellt wurden, geben Sie appcmd.exe Listenkonfiguration -section:system.webServer/rewrite/globalRules ein. Es gibt die globalRules zurück, die wie folgt aussehen:
<system.webServer> <rewrite> <globalRules> <rule name="ARR_myServerFarm_loadbalance" patternSyntax="Wildcard" stopProcessing="true"> <match url="*" /> <conditions> </conditions> <action type="Rewrite" url="http://myServerFarm/{R:0}" /> </rule> </globalRules> </rewrite> </system.webServer>Um ssl offloading zu deaktivieren, entfernen Sie zuerst alle URL-Neuschreibregeln:
appcmd.exe clear config -section:system.webServer/rewrite/globalRulesErstellen Sie dann die URL-Neuschreibregeln, um HTTPS-Datenverkehr weiterzuleiten. Mit dieser Regel leitet ARR Anforderungen mit SSL weiter, wenn die eingehenden Anforderungen HTTPS sind:
appcmd.exe set config -section:system.webServer/rewrite/globalRules /+"[name='ARR_myServerFarm_loadbalance_SSL',patternSyntax='Wildcard',stopProcessing='True']" /commit:apphost appcmd.exe set config -section:system.webServer/rewrite/globalRules /[name='ARR_myServerFarm_loadbalance_SSL',patternSyntax='Wildcard',stopProcessing='True'].match.url:"*" /commit:apphost appcmd.exe set config -section:system.webServer/rewrite/globalRules /+"[name='ARR_myServerFarm_loadbalance_SSL',patternSyntax='Wildcard',stopProcessing='True'].conditions.[input='{HTTPS}',pattern='On']" /commit:apphost appcmd.exe set config -section:system.webServer/rewrite/globalRules /[name='ARR_myServerFarm_loadbalance_SSL',patternSyntax='Wildcard',stopProcessing='True'].action.type:"Rewrite" /[name='ARR_myServerFarm_loadbalance_SSL',patternSyntax='Wildcard',stopProcessing='True'].action.url:"https://myServerFarm/{R:0}" /commit:apphostErstellen Sie schließlich die URL-Umschreibungsregeln, um HTTP-Datenverkehr im Klartext an die Anwendungsserver weiterzuleiten:
appcmd.exe set config -section:system.webServer/rewrite/globalRules /+"[name='ARR_myServerFarm_loadbalance',patternSyntax='Wildcard',stopProcessing='True']" /commit:apphost appcmd.exe set config -section:system.webServer/rewrite/globalRules /[name='ARR_myServerFarm_loadbalance',patternSyntax='Wildcard',stopProcessing='True'].match.url:"*" /commit:apphost appcmd.exe set config -section:system.webServer/rewrite/globalRules /[name='ARR_myServerFarm_loadbalance',patternSyntax='Wildcard',stopProcessing='True'].action.type:"Rewrite" /[name='ARR_myServerFarm_loadbalance',patternSyntax='Wildcard',stopProcessing='True'].action.url:"http://myServerFarm/{R:0}" /commit:apphostGeben Sie appcmd.exe list config -section:system.webServer/rewrite/globalRules ein, um zu überprüfen, dass die URL-Neuschreibregeln ordnungsgemäß erstellt wurden und das SSL-Offloading deaktiviert ist. Es gibt die globalRules zurück, die wie folgt aussehen:
<system.webServer> <rewrite> <globalRules> <rule name="ARR_myServerFarm_loadbalance_SSL" patternSyntax="Wildcard" stopProcessing="true"> <match url="*" /> <conditions> <add input="{HTTPS}" pattern="On" /> </conditions> <action type="Rewrite" url="https://myServerFarm/{R:0}" /> </rule> <rule name="ARR_myServerFarm_loadbalance" patternSyntax="Wildcard" stopProcessing="true"> <match url="*" /> <conditions> </conditions> <action type="Rewrite" url="http://myServerFarm/{R:0}" /> </rule> </globalRules> </rewrite> </system.webServer>
Schritt 2: Konfigurieren der Gesundheitsprüfungsüberwachung
Anwendungsanforderungsrouting überwacht den Status der Inhaltsserver auf zwei Arten:
- Über den Liveverkehr
- Über einen expliziten URL-Test
Die Live-Datenverkehrstests werden standardmäßig automatisch ausgeführt, wenn die Anforderungen an das Anwendungsanforderungsrouting gestellt werden. Der explizite URL-Test ist ein zusätzlicher Test, der mit dem Live-Datenverkehrstest verwendet werden kann. In diesem Abschnitt führt Sie die Anleitung durch die Konfiguration des expliziten URL-Tests.
So konfigurieren Sie die Gesundheitsüberwachung mithilfe der Benutzeroberfläche:
- Für den URL-Test muss eine bestimmte URL getestet werden. Verwenden Sie Editor, um diese Anforderung zu erfüllen, um eine Textdatei namens healthCheck.txt zu erstellen, die den Satz "Ich bin gesund." enthält.
- Platzieren Sie die healthCheck.txt Datei auf den Anwendungsservern.
- Stellen Sie sicher, dass die healthCheck.txt ordnungsgemäß gerendert wird, indem Sie die Seite in einem Browser öffnen.
- Wählen Sie im IIS-Manager die Serverfarm "myServerFarm" aus. Die folgenden Symbole werden angezeigt:
- Doppelklicken Sie auf Gesundheitstest.
- Geben Sie
http://(server name or FQDN of ARR server)/healthCheck.txtals URL-Wert ein. - Geben Sie healthy als Antwortwert für Übereinstimmung ein. Die Antwortübereinstimmung ist ein optionaler Test, um sicherzustellen, dass der Inhalt der Antwort die erwartete Zeichenfolge enthält. Da in diesem Fall healthCheck.txt den Satz "Ich bin gesund." enthält, wird bei der Antwortüberprüfung nach dem Wort "gesund" gesucht.
- Klicken Sie auf Übernehmen, um die Änderungen zu speichern.
- Um die Funktionalität der Integritätsprüfung zu überprüfen, beenden Sie die überwachte Site auf einem der Anwendungsserver. Da der Wert für Intervall (Sekunden) auf 30 Sekunden festgelegt ist, warten Sie 30 Sekunden auf die nächste Integritätsprüfung.
- Nachdem Sie 30 Sekunden gewartet haben, senden Sie mehrere Anforderungen an den ARR-Server.
- Um zu überprüfen, ob alle Anforderungen zu den fehlerfreien Servern wechseln, doppelklicken Sie auf "Überwachung und Verwaltung", und aktualisieren Sie dann das Dashboard mithilfe der F5-TASTE. Beachten Sie, dass die Laufzeitstatistiken zurückgesetzt wurden. Dies ist beabsichtigt. Möglicherweise möchten Sie bei Bedarf zusätzliche Anforderungen senden und das Dashboard aktualisieren.
- Die Gesundheitsüberwachung wird auch verwendet, um zu erkennen, wann ein ungesunder Server gesund wird. Um diese Funktionalität zu überprüfen, starten Sie die Website, die in Schritt 9 beendet wurde. Da der Intervallwert (Sekunden) auf 30 Sekunden festgelegt ist, warten Sie 30 Sekunden auf die nächste Integritätsprüfung.
- Nachdem Sie 30 Sekunden gewartet haben, senden Sie mehrere Anforderungen an den ARR-Server.
- Aktualisieren Sie das Dashboard im IIS-Manager, um zu überprüfen, ob die Anforderungen gleichmäßig zwischen Servern verteilt werden. Beachten Sie, dass die Laufzeitstatistiken zurückgesetzt wurden. Dies ist beabsichtigt. Möglicherweise möchten Sie bei Bedarf zusätzliche Anforderungen senden und das Dashboard aktualisieren.
So konfigurieren Sie die Integritätsprüfungsüberwachung mithilfe der Befehlszeile:
Öffnen Sie eine Eingabeaufforderung mit Administratorrechten .
Navigiere zu
%windir%\system32\inetsrv.Um die URL auf "
http://(server name or FQDN of ARR server)/healthCheck.txt" mit Ich bin gesund. als übereinstimmende Zeichenfolge festzulegen, geben Sie Folgendes ein:appcmd.exe set config -section:webFarms /[name='myServerFarm1'].applicationRequestRouting.healthCheck.url:"http://(server name or FQDN of ARR server)/healthCheck.txt " /[name='myServerFarm1'].applicationRequestRouting.healthCheck.responseMatch:"I am healthy." /commit:apphost
Schritt 3: Konfigurieren der Client-Affinität
Application Request Routing bietet ein Feature zur Client-Affinität, das einen Client für die Dauer einer Clientsitzung einem Inhaltsserver hinter Application Request Routing zuordnet. Wenn dieses Feature aktiviert ist, wird der Lastenausgleichsalgorithmus nur für die erste Anforderung vom Client angewendet. Ab diesem Zeitpunkt werden alle nachfolgenden Anforderungen desselben Clients für die Dauer der Clientsitzung an denselben Inhaltsserver weitergeleitet. Diese Funktion ist nützlich, wenn die Anwendung auf dem Inhaltsserver zustandsbehaftet ist und die Anfragen des Clients an denselben Inhaltsserver weitergeleitet werden müssen, da die Sitzungsverwaltung nicht zentralisiert ist.
So konfigurieren Sie die Clientaffinität mithilfe der Benutzeroberfläche:
- Starten Sie DEN IIS-Manager.
- Wählen Sie die Serverfarm myServerFarm aus, die in define and Configure an Application Request Routing (ARR) Server Group erstellt wurde.
- Die folgenden Symbole werden angezeigt:
- Doppelklicken Sie auf "Serveraffinität".
- Um die Klientaffinität zu aktivieren, aktivieren Sie das Kästchen Clientaffinität, und klicken Sie dann auf Übernehmen.
Anwendungsanforderungsrouting verwendet ein Cookie, um die Clientaffinität zu ermöglichen. Der Cookie-Name wird verwendet, um das Cookie auf dem Client festzulegen. Der Kunde muss jedoch Cookies akzeptieren, damit die Kundenaffinität ordnungsgemäß funktioniert. - Um die Funktionalität der Clientaffinität zu überprüfen, senden Sie mehrere Anforderungen an den ARR-Server. Aktualisieren Sie das Dashboard im IIS-Manager (Überwachung und Verwaltung). Stellen Sie sicher, dass sich die Laufzeitstatistiken nur für einen der Anwendungsserver ändern, auf den der Client affinitiert ist. Möglicherweise möchten Sie bei Bedarf zusätzliche Anforderungen senden und das Dashboard aktualisieren.
So konfigurieren Sie die Clientaffinität mithilfe der Befehlszeile:
Öffnen Sie eine Eingabeaufforderung mit Administratorrechten .
Navigiere zu
%windir%\system32\inetsrv.Um die Clientaffinität zu aktivieren, geben Sie Folgendes ein:
appcmd.exe set config -section:webFarms /[name='myServerFarm1'].applicationRequestRouting.affinity.useCookie:"True" /commit:apphost
Schritt 4 - Unterbinden neuer Verbindungen
Das Unterbinden neuer Verbindungen auf einem Server ist eine angemessene Möglichkeit, den Server aus der Serverfarm-Umgebung zu nehmen. Es ist sinnvoller, wenn die Clientaffinitätsfunktion verwendet wird, da Application Request Routing die vorhandenen Sitzungen berücksichtigt, wenn neue Verbindungen nicht erlaubt sind. Das heißt, wenn ein Client an einen Server gebunden ist, der neue Verbindungen nicht zulässt, wird der Client weiterhin an denselben Server weitergeleitet, und daher hat dies keine Auswirkungen auf den Client. Es werden jedoch keine neuen Clients auf den Server geroutet, der neue Verbindungen nicht zulässt.
So verbieten Sie neue Verbindungen mithilfe der Benutzeroberfläche:
- Identifizieren Sie mithilfe des Setups aus Schritt 3 den Server, zu dem Ihr Client affinitiert ist.
- Wählen Sie die Serverfarm myServerFarm aus, die in define and Configure an Application Request Routing (ARR) Server Group erstellt wurde.
- Die folgenden Symbole werden angezeigt:
- Doppelklicken Sie auf "Überwachung und Verwaltung".
- Wählen Sie den Server aus, auf dem Ihr Client affinitiert ist. Klicken Sie im Bereich "Aktionen " auf "Neue Verbindungen nicht zulassen".
- Klicken Sie im Bestätigungsdialogfeld auf "Ja".
- Um zu überprüfen, ob die Anforderungen von Ihren Clients weiterhin an den affinitisierten Server weitergeleitet werden, der jetzt neue Verbindungen nicht mehr zuweigt, senden Sie mehrere Anforderungen an den ARR-Server. Aktualisieren Sie das Dashboard im IIS-Manager. Stellen Sie sicher, dass sich die Laufzeitstatistiken nur für den Server ändern, auf den der Client affinitiert ist. Möglicherweise möchten Sie bei Bedarf zusätzliche Anforderungen senden und das Dashboard aktualisieren.
- Um sicherzustellen, dass neue Clients nicht an den Server weitergeleitet werden, der neue Verbindungen nicht zuweet, entfernen Sie das cookie, das durch Anwendungsanforderungsrouting festgelegt wurde, indem Sie den Browser schließen und neu starten.
- Senden Sie mehrere Anforderungen an den ARR-Server. Aktualisieren Sie das Dashboard im IIS-Manager. Überprüfen Sie, ob sich die Laufzeitstatistiken nur für die verfügbaren Server ändern. Überprüfen Sie insbesondere, ob die Laufzeitstatistiken für den Server, der neue Verbindungen ablehnt, nicht verändert werden. Möglicherweise möchten Sie bei Bedarf zusätzliche Anforderungen senden und das Dashboard aktualisieren.
Zusammenfassung
Sie haben nun eine Reihe von Einstellungen für anwendungsanforderungsrouting erfolgreich konfiguriert, um die Auslastung gleichmäßig zu skalieren und zu verteilen. Für erweiterte Routingfunktionen mit Anwendungsanforderungsrouting konsultieren Sie Verwendung des Anwendungsanforderungsroutings.