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.
Inhalt dieses Artikels
Ein Load-Balancer-Design verwendet ein Netzwerkgerät, um den Git- und HTTP-Traffic an einzelne GitHub Enterprise Server-Appliances zu leiten. Sie können 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 Sie die Subdomain-Isolation aktivieren. 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 Ihr 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 Ihre GitHub Enterprise Server-Instanz 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“.
-
Klicken Sie in der oberen rechten Ecke einer beliebigen Seite auf .
-
Klicken Sie auf der linken Seitenleiste auf Managementkonsole.
-
Klicken Sie auf der linken Seitenleiste auf Privacy (Datenschutz).
-
Wählen Sie Enable support for PROXY protocol (Unterstützung für PROXY-Protokoll aktivieren) unter External load balancers (Externe Load-Balancer) aus.
-
Klicken Sie auf der linken Seitenleiste auf Save settings (Einstellungen speichern).
PROXY-Protokoll – TCP-Portzuordnungen
Quellport | Zielport | Dienstbeschreibung |
---|---|---|
22 | 23 | Git über SSH |
80 | 81 | HTTP |
443 | 444 | HTTPS |
8080 | 8081 | HTTP für Managementkonsole |
8443 | 8444 | HTTPS für Managementkonsole |
9418 | 9419 | Git |
X-Forwarded-For-Unterstützung auf Ihre GitHub Enterprise Server-Instanz aktivieren
Verwenden Sie 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.
-
Klicken Sie in der oberen rechten Ecke einer beliebigen Seite auf .
-
Klicken Sie auf der linken Seitenleiste auf Managementkonsole.
-
Klicken Sie auf der linken Seitenleiste auf Privacy (Datenschutz).
-
Wählen Sie Allow HTTP X-Forwarded-For header (HTTP X-Forwarded-For-Header zulassen) unter External load balancers (Externe Load-Balancer) aus.
-
Klicken Sie auf der linken Seitenleiste auf Save settings (Einstellungen speichern).
Protokoll – TCP-Portzuordnungen für die Verwendung ohne PROXY-Unterstützung
Quellport | Zielport | Dienstbeschreibung |
---|---|---|
22 | 22 | Git über SSH |
25 | 25 | SMTP |
80 | 80 | HTTP |
443 | 443 | HTTPS |
8080 | 8080 | HTTP für Managementkonsole |
8443 | 8443 | HTTPS 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“.
Konfigurieren Sie 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.
Note: When the appliance is in maintenance mode, the https://HOSTNAME/status
URL will return status code 503
(Service Unavailable). Weitere Informationen finden Sie unter „Wartungsmodus aktivieren und planen“.