Load Balancer oder Reverse Proxy konfigurieren
  • 19 Jan 2024
  • 4 Minuten Lesezeit

Load Balancer oder Reverse Proxy konfigurieren


Artikel-Zusammenfassung

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:

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:

  1. Öffnen Sie den IIS-Manager.

  2. Wählen Sie unter Verbindungen Ihren Server aus.

  3. Öffnen Sie  URL Rewrite.

  4. Wählen Sie unter Aktionen die Option Servervariablen anzeigen aus.

  5. 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

Umgebungsvariable festlegen

Führen Sie die folgenden Schritte aus, um die Umgebungsvariable festzulegen:

  1. Gehen Sie zu IXM_BASE_DIR\www.

  2. Öffnen Sie die Datei web.config.

  3. Fügen Sie die Umgebungsvariable ASPNETCORE_FORWARDEDHEADERS_ENABLED hinzu, und setzen Sie sie auf true.

  4. 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

Führen Sie die folgenden Schritte aus, um die erforderlichen Umschreibungsregeln hinzuzufügen:

  1. Gehen Sie zu IXM_BASE_DIR\www.

  2. Öffnen Sie die Datei web.config.

  3. 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>
  4. 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>
  5. 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.

  6. 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

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:

  1. Gehen Sie zu IXM_BASE_DIR\www.

  2. Öffnen Sie die Datei web.config.

  3. 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>
  4. 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>
  5. 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.

  6. Speichern Sie Ihre Änderungen, und schließen Sie die Datei.


Changing your password will log you out immediately. Use the new password to log back in.
First name must have atleast 2 characters. Numbers and special characters are not allowed.
Last name must have atleast 1 characters. Numbers and special characters are not allowed.
Enter a valid email
Enter a valid password
Your profile has been successfully updated.