GitHub Enterprise Server mit einem Load-Balancer verwenden

Verwenden Sie einen Load-Balancer vor einer einzelnen GitHub Enterprise Server-Appliance oder einem Paar an Appliances in einer Hochverfügbarkeitskonfiguration.

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 Load-Balancer aufgelöst werden. Weitere Informationen finden Sie unter „Subdomain-Isolation aktivieren“.

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 Headers X-Forwarded-For 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 Traffic die GitHub Enterprise Server-Appliances direkt erreichen kann. Wenn der externe Traffic nicht ordnungsgemäß blockiert wird, kann die IP-Quelladresse gefälscht werden.

PROXY-Protokollunterstützung auf your GitHub Enterprise Server instance aktivieren

Es wird dringend empfohlen, die PROXY-Protokollunterstützung für Ihre Appliance und für den Load-Balancer zu aktivieren. Befolgen Sie die Anweisungen Ihres Anbieters, um das PROXY-Protokoll auf Ihrem Load-Balancer zu aktivieren. Weitere Informationen finden Sie in der Dokumentation zum „PROXY-Protokoll“.

  1. From an administrative account on GitHub Enterprise Server, click in the upper-right corner of any page. Raumschiffsymbol für den Zugriff auf die Einstellungen des Websiteadministrators
  2. Klicke auf der linken Seitenleiste auf Managementkonsole. Registerkarte „Managementkonsole" in der linken Seitenleiste
  3. Klicke auf der linken Seitenleiste auf Privacy (Datenschutz). Registerkarte „Privacy“ (Datenschutz) auf der Seitenleiste mit den Einstellungen
  4. Wählen Sie Enable support for PROXY protocol (Unterstützung für PROXY-Protokoll aktivieren) unter External load balancers (Externe Load-Balancer) aus. Kontrollkästchen zum Aktivieren der Unterstützung für das PROXY-Protokoll
  5. Klicke auf der linken Seitenleiste auf Save settings (Einstellungen speichern). Die Schaltfläche „Save settings“ (Einstellungen speichern) in der Managementkonsole
  6. Warten Sie auf den Abschluss der Konfigurationsausführung.
PROXY-Protokoll – TCP-Portzuordnungen
QuellportZielportDienstbeschreibung
2223Git über SSH
8081HTTP
443444HTTPS
80808081HTTP für Managementkonsole
84438444HTTPS für Managementkonsole
94189419Git

X-Forwarded-For-Unterstützung auf your GitHub Enterprise Server instance aktivieren

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

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

  1. From an administrative account on GitHub Enterprise Server, click in the upper-right corner of any page. Raumschiffsymbol für den Zugriff auf die Einstellungen des Websiteadministrators
  2. Klicke auf der linken Seitenleiste auf Managementkonsole. Registerkarte „Managementkonsole" in der linken Seitenleiste
  3. Klicke auf der linken Seitenleiste auf Privacy (Datenschutz). Registerkarte „Privacy“ (Datenschutz) auf der Seitenleiste mit den Einstellungen
  4. Wählen Sie Allow HTTP X-Forwarded-For header (HTTP X-Forwarded-For-Header zulassen) unter External load balancers (Externe Load-Balancer) aus. Kontrollkästchen zum Zulassen des HTTP X-Forwarded-For-Header
  5. Klicke auf der linken Seitenleiste auf Save settings (Einstellungen speichern). Die Schaltfläche „Save settings“ (Einstellungen speichern) in der Managementkonsole
  6. Warten Sie auf den Abschluss der Konfigurationsausführung.
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 Appliance aufgrund einer Wartung oder eines unerwarteten Ausfalls offline ist, kann der Load-Balancer 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. Sie müssen die Replikat-Appliance manuell hochstufen, bevor sie Anforderungen verarbeitet. Weitere Informationen finden Sie unter „GitHub Enterprise Server für Hochverfügbarkeit konfigurieren“.

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

  • https://HOSTNAME/status bei aktiviertem HTTPS (Standard)
  • http://HOSTNAME/status bei deaktiviertem HTTPS

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 https://HOSTNAME/status URL den Statuscode 503 (Dienst nicht verfügbar) zurück. Weitere Informationen finden Sie unter „Wartungsmodus aktivieren und planen“.

Did this doc help you?Privacy policy

Help us make these docs great!

All GitHub docs are open source. See something that's wrong or unclear? Submit a pull request.

Make a contribution

Oder, learn how to contribute.