Informationen zu Load-Balancern
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-Abfragen für den Hostnamen GitHub Enterprise Server sollten zum Load Balancer aufgelöst werden. Es wird empfohlen, dass Du die Subdomain-Isolation aktivierst. Wenn die Subdomain-Isolation aktiviert ist, sollte ein zusätzlicher Wildcard-DNS-Eintrag (*.HOSTNAME) ebenfalls auf den Load Balancer verweisen. Weitere Informationen finden Sie unter Subdomain-Isolation aktivieren.
Behandlung von Clientverbindungsinformationen
Da Clientverbindungen zu GitHub Enterprise Server vom Load Balancer kommen, kann die IP-Adresse des Clients 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.
Achtung
Wenn entweder die PROXY-Unterstützung oder die HTTP-Weiterleitung aktiviert ist, ist es wichtig, 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 für Ihre 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.
-
Klicke in einem Verwaltungskonto für GitHub Enterprise Server in der rechten oberen Ecke einer beliebigen Seite auf .
-
Wenn du dich nicht bereits auf der Seite „Websiteadministrator“ befindest, klicke in der oberen linken Ecke auf Websiteadministrator.
-
Klicke in der Randleiste „ Site admin“ auf Verwaltungskonsole.
-
Klicke auf der Randleiste „Settings“ auf Privacy, und deaktiviere die Option Private mode.
-
Wähle unter „Externe Lastenausgleichsmodule“ die Option Unterstützung für PROXY-Protokoll aktivieren aus.
-
Klicke auf der Randleiste unter „Einstellungen“ auf Einstellungen speichern.
Hinweis
Durch das Speichern von Einstellungen in der Verwaltungskonsole werden Systemdienste neu gestartet, was zu einer für den Benutzer feststellbaren Downtime führen könnte.
-
Warten Sie auf den Abschluss der Konfigurationsausführung.
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-Instance aktivieren
Verwende das X-Forwarded-For-Protokoll nur, wenn das PROXY-Protokoll nicht verfügbar ist. Der X-Forwarded-For-Header ist nur mit HTTP und HTTPS kompatibel. Bei Git-Verbindungen über SSH wird als IP-Adresse die des Load Balancers angegeben. In einigen Umgebungen werden Client-IP-Adressen im Überwachungsprotokoll der Instanz möglicherweise fälschlicherweise als 127.0.0.1angezeigt.
Warnung
Wenn Sie X-Forwarded-For auf Ihre GitHub Enterprise Server-Instance und dem Lastenausgleich konfigurieren, können Sie möglicherweise keine Verbindung zu Verwaltungskonsole herstellen. Weitere Informationen finden Sie unter Verwenden von GitHub Enterprise Server mit einem Lastenausgleich.
-
Klicke in einem Verwaltungskonto für GitHub Enterprise Server in der rechten oberen Ecke einer beliebigen Seite auf .
-
Wenn du dich nicht bereits auf der Seite „Websiteadministrator“ befindest, klicke in der oberen linken Ecke auf Websiteadministrator.
-
Klicke in der Randleiste „ Site admin“ auf Verwaltungskonsole.
-
Klicke auf der Randleiste „Settings“ auf Privacy, und deaktiviere die Option Private mode.
-
Wähle unter Externe Lastenausgleichsmodule die Option HTTP X-Forwarded-For-Header zulassen aus.
-
Klicke auf der Randleiste unter „Einstellungen“ auf Einstellungen speichern.
Hinweis
Durch das Speichern von Einstellungen in der Verwaltungskonsole werden Systemdienste neu gestartet, was zu einer für den Benutzer feststellbaren Downtime führen könnte.
-
Warten Sie auf den Abschluss der Konfigurationsausführung.
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 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 Replikationsinstanz manuell hochstufen, bevor sie Anfragen bearbeitet. Weitere Informationen finden Sie unter Konfigurieren von Hochverfügbarkeit.
Konfiguriere den Lastenausgleich, um die folgende URL zu überprüfen.
http(s)://HOSTNAME/status
Der Endpunkt gibt den Statuscode 200 (OK) zurück, wenn der Knoten fehlerfrei ist und zum Beantworten von Endbenutzeranforderungen verfügbar ist. Weitere Informationen finden Sie unter Überwachen einer Hochverfügbarkeitskonfiguration.
Hinweis
Wenn sich die Anwendung im Wartungsmodus befindet, gibt die URL https://HOSTNAME/status den Statuscode 503 (Service nicht erreichbar) zurück. Weitere Informationen finden Sie unter Wartungsmodus aktivieren und planen.
Problembehandlung bei der Konnektivität über einen Load Balancer
Wenn Sie über einen Load Balancer keine Verbindung zu Diensten auf Ihre GitHub Enterprise Server-Instance herstellen können, können Sie die folgenden Informationen heranziehen, um das Problem zu beheben.
Hinweis
Teste Änderungen an deiner Netzwerkinfrastruktur und Instanzkonfiguration immer in einer Stagingumgebung. Weitere Informationen finden Sie unter Testinstanz einrichten.
Fehler: „Ihre Sitzung ist bei Verbindungen zu Verwaltungskonsole abgelaufen“
Wenn Sie die Unterstützung für den X-Forwarded-For-Header auf Ihrer Instanz und Ihrem Load Balancer aktivieren, können Sie möglicherweise nicht auf das Verwaltungskonsole Ihrer Instanz zugreifen. Weitere Informationen über das Verwaltungskonsole und die für Verbindungen erforderlichen Ports finden Sie unter Verwalten Ihrer Instanz über die Web-Benutzeroberfläche und Netzwerkports.
Wenn Ihre GitHub Enterprise Server-Instance anzeigt, dass Ihre Sitzung abgelaufen ist, wenn Sie über einen Load Balancer eine Verbindung mit Verwaltungskonsole herstellen, versuchen Sie eine der folgenden Konfigurationen auf Ihrem Load Balancer.
- Deaktiviere
X-Forwarded-For-Header für Verbindungen mit deiner Instanz an Ports 8080 und 8443. - Konfiguriere deinen Lastenausgleich so, dass er auf Schicht 4 ausgeführt wird, und verwende das PROXY-Protokoll anstelle von
X-Forwarded-Forfür das Passthrough von Client-IP-Adressen. Weitere Informationen finden Sie unter Aktivieren der PROXY-Protokollunterstützung unter Ihre GitHub Enterprise Server-Instance.
Weitere Informationen findest du in der Dokumentation für den Lastenausgleich.
Liveupdates für Probleme und Überprüfungsausführungen funktionieren nicht
Wenn über einen Load-Balancer oder Reverse-Proxy auf Ihre GitHub Enterprise Server-Instance zugegriffen wird, werden erwartete Live-Aktualisierungen, etwa neue Kommentare zu Issues sowie Änderungen an Benachrichtigungs-Badges oder an der Ausgabe von Prüfläufen, 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.