- 19 Jan 2024
- 4 Minuten Lesezeit
- Drucken
Load Balancer oder Reverse Proxy konfigurieren
- Aktualisiert am 19 Jan 2024
- 4 Minuten Lesezeit
- Drucken
Die IXM Plattform unterstützt den API-Zugriff über Load Balancer und/oder Proxy Setups, die bei der Verwaltung von Serversystemen helfen.
Load Balancer verteilen große Mengen an Datenverkehr auf einen Pool verfügbarer Server. Ein Load Balancer ermöglicht es einer Anwendung, über einen einzelnen Server hinaus zu skalieren, wodurch die Verarbeitung effizienter wird. Je nach Konfiguration kann ein Load Balancer auch als Reverse Proxy dienen. Ein Reverse Proxy nimmt eine Anforderung von einem Client entgegen, leitet sie an einen verfügbaren Server weiter und gibt die Serverantwort an den Client zurück.
Die nahtlose Verwendung eines Load Balancers und/oder Reverse Proxys mit der IXM Plattform erfordert eine zusätzliche Konfiguration der Internetinformationsdienste (IIS) für Windows Server. Befolgen Sie die Anweisungen in diesem Artikel, um Ihr System zu konfigurieren.
Voraussetzungen
Bevor Sie mit der Konfiguration beginnen, stellen Sie sicher, dass Sie die folgenden Voraussetzungen erfüllen:
Sie benutzen IXM Plattform Version 11.16.0 oder später.
Das URL Rewrite-Modul auf jedem Webserver in Ihrem System installiert ist. Weitere Informationen finden Sie in der Microsoft-Dokumentation: https://www.iis.net/downloads/microsoft/url-rewrite
Hinweis
Wenden Sie die folgenden Einstellungen nur an, wenn sich IIS hinter einem Load Balancer befindet.
Zulässige Servervariablen hinzufügen
Sie müssen dem URL Rewrite-Modul zulässige Servervariablen hinzufügen. Führen Sie dazu die folgenden Schritte aus:
Öffnen Sie den IIS-Manager.
Wählen Sie unter Verbindungen Ihren Server aus.
Öffnen Sie URL Rewrite.
Wählen Sie unter Aktionen die Option Servervariablen anzeigen aus.
Klicken Sie auf Hinzufügen und fügen Sie die folgenden Variablen hinzu:
HTTP_HOST
HTTPS (auf Englisch)
REMOTE_ADDR
REMOTE_HOST
SERVER_NAME
SERVER_PORT
![iis_variables.png](http://cdn.document360.io/e2b87f73-d9f5-43cb-8182-2641762664fd/Images/Documentation/iis_variables.png?sv=2022-11-02&spr=https&st=2025-02-06T01%3A51%3A09Z&se=2025-02-06T02%3A01%3A09Z&sr=c&sp=r&sig=98obFHwV3IVYUw1Rlqf%2BZgWTzXnXC2E%2BD%2BeEaYGEGfI%3D)
Umgebungsvariable festlegen
Führen Sie die folgenden Schritte aus, um die Umgebungsvariable festzulegen:
Gehen Sie zu IXM_BASE_DIR\www.
Öffnen Sie die Datei web.config.
Fügen Sie die Umgebungsvariable ASPNETCORE_FORWARDEDHEADERS_ENABLED hinzu, und setzen Sie sie auf true.
Speichern Sie Ihre Änderungen, und schließen Sie die Datei.
<configuration>
<system.webServer>
<aspNetCore>
<environmentVariables>
<environmentVariable name="ASPNETCORE_FORWARDEDHEADERS_ENABLED" value="true" />
</environmentVariables>
</aspNetCore>
</system.webServer>
</configuration>
Umschreibungsregeln hinzufügen
Es gibt zwei Szenarien für die IIS-Bindung:
Die IIS-Bindung unterscheidet sich von der MainServerURL
Es wird empfohlen, diese Lösung zu verwenden, da die Leistung besser ist, wenn SSL ausschließlich vom Reverse Proxy verwaltet wird.
Die IIS-Bindung stimmt mit der MainServerURL überein
Diese Lösung ist einfacher, da Sie die Bindung nicht ändern müssen, wenn Sie einem vorhandenen Setup einen Reverse Proxy hinzufügen. Aufgrund des SSL-Overheads auf dem Webserver ist diese Variante jedoch langsamer.
Wählen Sie Ihr Szenario aus und befolgen Sie die entsprechenden Anweisungen.
IIS-Bindung unterscheidet sich von der MainServerURL
In diesem Szenario unterscheiden sich die externe URL und die interne IIS-Bindung. Zum Beispiel: https://external.domain und http://localhost.
![null](http://cdn.document360.io/e2b87f73-d9f5-43cb-8182-2641762664fd/Images/Documentation/iis_binding-different.png?sv=2022-11-02&spr=https&st=2025-02-06T01%3A51%3A09Z&se=2025-02-06T02%3A01%3A09Z&sr=c&sp=r&sig=98obFHwV3IVYUw1Rlqf%2BZgWTzXnXC2E%2BD%2BeEaYGEGfI%3D)
Führen Sie die folgenden Schritte aus, um die erforderlichen Umschreibungsregeln hinzuzufügen:
Gehen Sie zu IXM_BASE_DIR\www.
Öffnen Sie die Datei web.config.
Fügen Sie den folgenden Code für Ihre Umschreibungsregeln hinzu:
<?xml version="1.0" encoding="utf-8"?> <configuration> <system.webServer> <rewrite> <rules> <!-- add rules here --> </rules> </rewrite> </system.webServer> </configuration>
Fügen Sie die folgenden Umschreibungsregeln hinzu:
<rule name="X-Forwarded-Host"> <match url=".*" /> <serverVariables> <set name="HTTP_HOST" value="{C:0}" /> <set name="SERVER_NAME" value="{C:1}" /> <set name="SERVER_PORT" value="{C:3}" /> </serverVariables> <action type="None" /> <conditions> <add input="{REMOTE_ADDR}" pattern="^192\.168\.175\.1$" /> <add input="{HTTP_X_FORWARDED_HOST}" pattern="^([\w\-\.]+)(\:(\d+))?$" /> </conditions> </rule> <rule name="X-Forwarded-Proto-Https"> <match url=".*" /> <serverVariables> <set name="HTTPS" value="on" /> </serverVariables> <action type="None" /> <conditions> <add input="{REMOTE_ADDR}" pattern="^192\.168\.175\.1$" /> <add input="{HTTP_X_FORWARDED_Proto}" pattern="^https$" /> </conditions> </rule> <rule name="X-Forwarded-Proto-Http"> <match url=".*" /> <serverVariables> <set name="HTTPS" value="off" /> </serverVariables> <action type="None" /> <conditions> <add input="{REMOTE_ADDR}" pattern="^192\.168\.175\.1$" /> <add input="{HTTP_X_FORWARDED_Proto}" pattern="^http$" /> </conditions> </rule> <rule name="X-Forwarded-For"> <match url=".*" /> <serverVariables> <set name="REMOTE_ADDR" value="{C:0}" /> <set name="REMOTE_HOST" value="{C:0}" /> </serverVariables> <action type="None" /> <conditions> <add input="{REMOTE_ADDR}" pattern="^192\.168\.175\.1$" /> <add input="{HTTP_X_FORWARDED_FOR}" pattern=".+" /> </conditions> </rule>
Ersetzen Sie jedes Vorkommen von ^192\.168\.175\.1$ durch die IP-Adresse des Load Balancers. Sie müssen Sonderzeichen wie einem Punkt (.) einen umgekehrten Schrägstrich (\) voranstellen, da dieses Muster ein regulärer Ausdruck ist.
Speichern Sie Ihre Änderungen, und schließen Sie die Datei.
IIS-Bindung stimmt mit MainServerURL überein
In diesem Szenario stimmen die externe URL und die interne IIS-Bindung überein. Zum Beispiel: https://external.domain und https://external.domain.
![null](http://cdn.document360.io/e2b87f73-d9f5-43cb-8182-2641762664fd/Images/Documentation/iis_binding-same.png?sv=2022-11-02&spr=https&st=2025-02-06T01%3A51%3A09Z&se=2025-02-06T02%3A01%3A09Z&sr=c&sp=r&sig=98obFHwV3IVYUw1Rlqf%2BZgWTzXnXC2E%2BD%2BeEaYGEGfI%3D)
Anmerkung
Aufgrund der HTTPS-Bindung müssen Sie das SSL-Zertifikat auf dem Webserver installieren. Die HTTPS-Verschlüsselung erzeugt zusätzliche CPU-Last auf dem Webserver.
Führen Sie die folgenden Schritte aus, um die erforderliche Umschreibungsregel hinzuzufügen:
Gehen Sie zu IXM_BASE_DIR\www.
Öffnen Sie die Datei web.config.
Fügen Sie den folgenden Code für Ihre Umschreibungsregel hinzu:
<?xml version="1.0" encoding="utf-8"?> <configuration> <system.webServer> <rewrite> <rules> <!-- add rules here --> </rules> </rewrite> </system.webServer> </configuration>
Fügen Sie die folgende Umschreibungsregel hinzu:
<rule name="X-Forwarded-For"> <match url=".*" /> <serverVariables> <set name="REMOTE_ADDR" value="{C:0}" /> <set name="REMOTE_HOST" value="{C:0}" /> </serverVariables> <action type="None" /> <conditions> <add input="{REMOTE_ADDR}" pattern="^192\.168\.175\.1$" /> <add input="{HTTP_X_FORWARDED_FOR}" pattern=".+" /> </conditions> </rule>
Ersetzen Sie jedes Vorkommen von ^192\.168\.175\.1$ durch die IP-Adresse des Load Balancers. Sie müssen Sonderzeichen wie einem Punkt (.) einen umgekehrten Schrägstrich (\) voranstellen, da dieses Muster ein regulärer Ausdruck ist.
Speichern Sie Ihre Änderungen, und schließen Sie die Datei.