Skip to main content
We publish frequent updates to our documentation, and translation of this page may still be in progress. For the most current information, please visit the English documentation.

GitHub Enterprise Server mit einem Load-Balancer verwenden

Verwende einen Lastenausgleich vor einer einzelnen GitHub Enterprise Server-Instanz oder in einer Hochverfügbarkeitskonfiguration vor einem Paar von Instanzen.

Informationen zu Lastenausgleichsmodulen

Ein Load-Balancer-Design verwendet ein Netzwerkgerät, um den Git- und HTTP-Traffic an einzelne GitHub Enterprise Server-Appliances zu leiten. Du kannst einen Load-Balancer verwenden, um aus Sicherheitsgründen den direkten Traffic zur Appliance einzuschränken oder um den Traffic bei Bedarf weiterzuleiten, ohne dass dazu Änderungen am DNS-Eintrag erforderlich sind. Es wird dringend empfohlen, einen TCP-basierten Load-Balancer zu verwenden, der das PROXY-Protokoll unterstützt.

DNS-Nachschlagevorgänge für den GitHub Enterprise Server-Hostnamen sollten im Load-Balancer aufgelöst werden. Es wird empfohlen, dass Du die Subdomain-Isolation aktivierst. Bei aktivierter Subdomain-Isolation sollte ein zusätzlicher Platzhaltereintrag (*.HOSTNAME) ebenfalls im Lastenausgleich aufgelöst werden. Weitere Informationen findest du unter Aktivieren der Subdomain-Isolation.

Clientverbindungsinformationen verarbeiten

Da Clientverbindungen zu GitHub Enterprise Server vom Load-Balancer stammen, kann die Client-IP-Adresse verloren gehen.

Wenn Dein Load-Balancer das PROXY-Protokoll unterstützen kann, wird dringend empfohlen, es zu implementieren. Wenn keine PROXY-Unterstützung verfügbar ist, kann auch mithilfe des X-Forwarded-For-Headers der Lastenausgleich auf den HTTP- und HTTPS-Ports vorgenommen werden.

Sicherheitswarnung: Wenn entweder die PROXY-Unterstützung oder die HTTP-Weiterleitung aktiviert ist, ist es von entscheidender Bedeutung, dass kein externer Datenverkehr die GitHub Enterprise Server-Appliances direkt erreichen kann. Wenn der externe Traffic nicht ordnungsgemäß blockiert wird, kann die IP-Quelladresse gefälscht werden.

Warnung: Wenn HTTPS-Verbindungen in einem Lastenausgleich beendet werden, müssen die vom Lastenausgleich an GitHub Enterprise Server gesendeten Anforderungen ebenfalls HTTPS verwenden. Das Downgraden der Verbindung auf HTTP wird nicht unterstützt.

Aktivieren der PROXY-Protokollunterstützung auf your GitHub Enterprise Server instance

Du solltest die PROXY-Protokollunterstützung unbedingt sowohl für deine Instanz als auch den Lastenausgleich aktivieren. Befolge die Anweisungen deines Anbieters, um das PROXY-Protokoll auf deinem Load-Balancer zu aktivieren. Weitere Informationen findest du in der PROXY-Protokolldokumentation.

Hinweis: GitHub Enterprise Server unterstützt PROXY Protocol V1, welches nicht mit AWS Network Load Balancers kompatibel ist. Wenn du AWS Network Load Balancers mit GitHub Enterprise Server verwendest, aktiviere nicht die PROXY-Unterstützung.

  1. Klicke in einem Verwaltungskonto auf GitHub Enterprise Server, und klicke in der oberen rechten Ecke einer beliebigen Seite auf .

    Screenshot des Raketensymbols für den Zugriff auf Websiteadministratoreinstellungen

  2. Wenn du dich nicht bereits auf der Seite „Websiteadministrator“ befindest, klicke in der oberen linken Ecke auf Websiteadministrator.

    Screenshot des Links „Websiteadministrator“ 1. Klicke auf der linken Seitenleiste auf Management Console . Registerkarte Management Console auf der linken Seitenleiste 1. Klicke auf der linken Randleiste auf Datenschutz. Registerkarte „Datenschutz“ auf der Randleiste mit den Einstellungen

  3. Wähle unter Externe Lastenausgleichsmodule die Option Unterstützung für PROXY-Protokoll aktivieren aus. Kontrollkästchen zum Aktivieren der Unterstützung für PROXY-Protokoll 1. Klicke unter der linken Randleiste auf Einstellungen speichern.

    Screenshot der Schaltfläche „Einstellungen speichern“ in der Management Console

    Hinweis: Durch das Speichern von Einstellungen in der Management Console werden Systemdienste neu gestartet, was zu einer für den Benutzer feststellbaren Downtime führen könnte.

  4. Warten Sie auf den Abschluss der Konfigurationsausführung.

    „Configuring your instance“ (Instanz konfigurieren)

PROXY-Protokoll – TCP-Portzuordnungen

QuellportZielportDienstbeschreibung
2223Git über SSH
8081HTTP
443444HTTPS
80808081HTTP für Managementkonsole
84438444HTTPS für Managementkonsole
94189419Git

Aktivieren der X-Forwarded-For-Protokollunterstützung auf your GitHub Enterprise Server instance

Verwende das X-Forwarded-For-Protokoll nur, wenn das PROXY-Protokoll nicht verfügbar ist. Der X-Forwarded-For-Header funktioniert nur mit HTTP und HTTPS. Die für Git-Verbindungen über SSH gemeldete IP-Adresse zeigt die Load-Balancer-IP.

Warnung: Wenn du die X-Forwarded-For-Unterstützung für your GitHub Enterprise Server instance und Lastenausgleich konfigurierst, kannst du möglicherweise keine Verbindung mit der Management Console herstellen. Weitere Informationen findest du unter Fehler: „Deine Sitzung ist abgelaufen“ für Verbindungen mit der Management Console.

  1. Klicke in einem Verwaltungskonto auf GitHub Enterprise Server, und klicke in der oberen rechten Ecke einer beliebigen Seite auf .

    Screenshot des Raketensymbols für den Zugriff auf Websiteadministratoreinstellungen

  2. Wenn du dich nicht bereits auf der Seite „Websiteadministrator“ befindest, klicke in der oberen linken Ecke auf Websiteadministrator.

    Screenshot des Links „Websiteadministrator“ 1. Klicke auf der linken Seitenleiste auf Management Console . Registerkarte Management Console auf der linken Seitenleiste 1. Klicke auf der linken Randleiste auf Datenschutz. Registerkarte „Datenschutz“ auf der Randleiste mit den Einstellungen

  3. Wähle unter Externe Lastenausgleichsmodule die Option HTTP X-Forwarded-For-Header zulassen aus. Kontrollkästchen zum Zulassen des HTTP X-Forwarded-For-Headers 1. Klicke unter der linken Randleiste auf Einstellungen speichern.

    Screenshot der Schaltfläche „Einstellungen speichern“ in der Management Console

    Hinweis: Durch das Speichern von Einstellungen in der Management Console werden Systemdienste neu gestartet, was zu einer für den Benutzer feststellbaren Downtime führen könnte.

  4. Warten Sie auf den Abschluss der Konfigurationsausführung.

    „Configuring your instance“ (Instanz konfigurieren)

Protokoll – TCP-Portzuordnungen für die Verwendung ohne PROXY-Unterstützung

QuellportZielportDienstbeschreibung
2222Git über SSH
2525SMTP
8080HTTP
443443HTTPS
80808080HTTP für Managementkonsole
84438443HTTPS für Managementkonsole

Zustandsprüfungen konfigurieren

Zustandsprüfungen ermöglichen einem Load-Balancer, das Senden von Traffic an einen nicht antwortenden Knoten zu stoppen, wenn eine vorkonfigurierte Prüfung auf diesem Knoten fehlschlägt. Wenn die Instanz aufgrund einer Wartung oder eines unerwarteten Ausfalls offline ist, kann der Lastenausgleich eine Statusseite anzeigen. In einer Hochverfügbarkeitskonfiguration (HA) kann ein Load-Balancer als Bestandteil einer Failover-Strategie verwendet werden. Das automatische Failover von HA-Paaren wird jedoch nicht unterstützt. Du musst die Replikatinstanz manuell hochstufen, bevor sie Anforderungen verarbeitet. Weitere Informationen findest du unter Konfigurieren von GitHub Enterprise Server für Hochverfügbarkeit.

Konfiguriere den Load-Balancer, um eine der folgenden URLs zu überprüfen:

  • https://HOSTNAME/status wenn HTTPS aktiviert ist (Standard)
  • http://HOSTNAME/status wenn HTTPS deaktiviert ist

Bei der Überprüfung wird der Statuscode 200 (OK) zurückgegeben, wenn der Knoten fehlerfrei ist und zum Beantworten von Endbenutzeranforderungen verfügbar ist.

Hinweis: Wenn sich die Appliance im Wartungsmodus befindet, gibt die URL https://HOSTNAME/status den Statuscode 503 (Dienst nicht verfügbar) zurück. Weitere Informationen findest du unter Aktivieren und Planen des Wartungsmodus.

Problembehandlung bei der Konnektivität über einen Lastenausgleich

Wenn du auf your GitHub Enterprise Server instance über einen Lastenausgleich keine Verbindung mit Diensten herstellen kannst, kannst du die folgenden Informationen überprüfen, um das Problem zu behandeln.

Hinweis: Teste in einer Stagingumgebung immer Änderungen an deiner Netzwerkinfrastruktur und Instanzkonfiguration. Weitere Informationen findest du unter Einrichten einer Staginginstanz.

Fehler: „Deine Sitzung ist abgelaufen“ für Verbindungen mit der Management Console

Wenn du die Unterstützung für den X-Forwarded-For-Header für deine Instanz und den Lastenausgleich aktivierst, kannst du möglicherweise nicht auf die Management Console deiner Instanz zugreifen. Weitere Informationen zur Management Console und zu Ports, die für Verbindungen erforderlich sind, findest du unter Zugreifen auf die Verwaltungskonsole und Netzwerkports.

Wenn your GitHub Enterprise Server instance angibt, dass deine Sitzung abgelaufen ist, wenn du eine Verbindung mit der Management Console über einen Lastenausgleich herstellst, probiere eine der folgenden Konfigurationen für den Lastenausgleich aus.

Weitere Informationen findest du in der Dokumentation für den Lastenausgleich.

Liveupdates für Probleme und Überprüfungsausführungen funktionieren nicht

Wenn über einen Lastenausgleich oder Reverseproxy auf your GitHub Enterprise Server instance zugegriffen wird, werden erwartete Liveupdates, z. B. neue Kommentare zu Problemen und Änderungen an Infobadges oder Ausgabe der Überprüfungsausführung, möglicherweise erst angezeigt, wenn die Seite aktualisiert wird. Dies ist am häufigsten der Fall, wenn der Reverseproxy oder Lastenausgleich in einem Schicht 7-Modus ausgeführt oder das erforderliche Websocket-Protokoll nicht unterstützt wird.

Um Liveupdates zu aktivieren, musst du möglicherweise den Lastenausgleich oder Proxy neu konfigurieren. Weitere Informationen findest du in der Dokumentation für den Lastenausgleich.