About load balancers
ロードバランサの設計では、ネットワークデバイスを使ってGit及びHTTPのトラフィックを個々のGitHub Enterprise Serverアプライアンスに向かわせます。 ロードバランサを使って、セキュリティのためにアプライアンスへの直接のトラフィックを制限したり、必要に応じてDNSのレコードを変更することなくトラフィックをリダイレクトしたりできます。 PROXYプロトコルをサポートするTCPベースのロードバランサを使うことを強くおすすめします。
GitHub Enterprise Serverのホスト名に対するDNSルックアップは、ロードバランサに解決されなければなりません。 Subdomain Isolationを有効化することをおすすめします。 サブドメイン分離が有効化されている� �合、追� のワイルドカード レコード (*.HOSTNAME
) もロード バランサーに解決されなければなりません。 詳細については、「サブドメイン分離の有効化」を参照してく� さい。
Handling client connection information
Because client connections to GitHub Enterprise Server come from the load balancer, the client IP address can be lost.
使用しているロードバランサがサポートできるなら、PROXYプロトコルの利用を強くおすすめします。 PROXY サポートが利用できない� �合でも、X-Forwarded-For
ヘッダーを使って HTTP および HTTPS ポートを� 荷分散できます。
セキュリティの警告: PROXY サポートあるいは HTTP フォワーディングが有効化されている� �合、外部のトラフィックが直接 GitHub Enterprise Server アプライアンスに到達できないことが重要です。 外部トラフィックが適切にブロックされていない� �合、ソース IP アドレスが偽� されるかもしれません。
警告: ロード バランサーの HTTPS 接続を終了する� �合、ロード バランサーから GitHub Enterprise Server への要求も HTTPS を使用する必要があります。 接続の HTTP へのダウングレードはサポートされません。
Enabling PROXY protocol support on your GitHub Enterprise Server instance
We strongly recommend enabling PROXY protocol support for both your instance and the load balancer. Use the instructions provided by your vendor to enable the PROXY protocol on your load balancer. For more information, see the PROXY protocol documentation.
注: GitHub Enterprise Server は、AWS ネットワーク ロード バランサーと互換性のない PROXY プロトコル V1 をサポートしています。 GitHub Enterprise Server で AWS ネットワーク ロード バランサーを使用する� �合は、PROXY サポートを有効にしないでく� さい。
-
GitHub Enterprise Server の管理アカウントから、任意のページの右上隅の をクリックします。
-
[サイト管理者] ページにま� 表示されていない� �合は、左上隅の [サイト管理者] をクリックします。
-
左側のサイドバーで、 [Management Console] をクリックします。
-
左側のサイドバーで、 [プライバシー] をクリックします。
-
Under External load balancers, select Enable support for PROXY protocol.
-
左側のサイドバーで、 [設定の保存] をクリックします。
注: [Management Console] に設定を保存すると、システ� サービスが再起動され、ユーザーに表示されるダウンタイ� が発生する可能性があります。
-
設定の実行が完了するのを待ってく� さい。
PROXYプロトコルのTCPポートマッピング
送信元ポート | 宛先ポート | サービスの説明 |
---|---|---|
22 | 23 | Git over SSH |
80 | 81 | HTTP |
443 | 444 | HTTPS |
8080 | 8081 | Management Console HTTP |
8443 | 8444 | Management Console HTTPS |
9418 | 9419 | Git |
Enabling X-Forwarded-For support on your GitHub Enterprise Server instance
X-Forwarded-For プロトコルは、PROXY プロトコルが使用できない� �合に のみ 使用します。 X-Forwarded-For
ヘッダーは HTTP と HTTPS でのみ機能します。 SSH経由のGit接続で示されるIPアドレスは、ロードバランサのIPを示します。
Warning: If you configure X-Forwarded-For
support on your GitHub Enterprise Server instance and load balancer, you may not be able to connect to the [Management Console]. For more information, see "Error: "Your session has expired" for connections to the [Management Console]."
-
GitHub Enterprise Server の管理アカウントから、任意のページの右上隅の をクリックします。
-
[サイト管理者] ページにま� 表示されていない� �合は、左上隅の [サイト管理者] をクリックします。
-
左側のサイドバーで、 [Management Console] をクリックします。
-
左側のサイドバーで、 [プライバシー] をクリックします。
-
Under External load balancers, select Allow HTTP X-Forwarded-For header.
-
左側のサイドバーで、 [設定の保存] をクリックします。
注: [Management Console] に設定を保存すると、システ� サービスが再起動され、ユーザーに表示されるダウンタイ� が発生する可能性があります。
-
設定の実行が完了するのを待ってく� さい。
PROXYサポートなしで使うプロトコルのTCPポートマッピング
送信元ポート | 宛先ポート | サービスの説明 |
---|---|---|
22 | 22 | Git over SSH |
25 | 25 | SMTP |
80 | 80 | HTTP |
443 | 443 | HTTPS |
8080 | 8080 | Management Console HTTP |
8443 | 8443 | Management Console HTTPS |
Configuring health checks
Health checks allow a load balancer to stop sending traffic to a node that is not responding if a pre-configured check fails on that node. If the instance is offline due to maintenance or unexpected failure, the load balancer can display a status page. In a High Availability (HA) configuration, a load balancer can be used as part of a failover strategy. However, automatic failover of HA pairs is not supported. You must manually promote the replica instance before it will begin serving requests. For more information, see "Configuring GitHub Enterprise Server for High Availability."
以下のURLのいずれかをチェックするようにロードバランサを設定してく� さい。
https://HOSTNAME/status
HTTPS が有効な� �合 (既定)http://HOSTNAME/status
HTTPS が無効な� �合
ノードが正常でエンドユーザーからの要求に応えられる� �合、このチェックによって状態コード 200
(OK) が返されます。
注: アプライアンスがメンテナンス モードの� �合、https://HOSTNAME/status
URL は状態コード 503
(サービス利用不可) を返します。 詳細については、「メンテナンスモードの有効化とスケジューリング」を参照してく� さい。
Troubleshooting connectivity through a load balancer
If you cannot connect to services on your GitHub Enterprise Server instance through a load balancer, you can review the following information to troubleshoot the problem.
Note: Always test changes to your network infrastructure and instance configuration in a staging environment. For more information, see "Setting up a staging instance."
Error: "Your session has expired" for connections to the [Management Console]
If you enable support for the X-Forwarded-For
header on your instance and load balancer, you may not be able to access your instance's [Management Console]. For more information about the [Management Console] and ports required for connections, see "Accessing the management console" and "Network ports."
If your GitHub Enterprise Server instance indicates that your session has expired when you connect to the [Management Console] through a load balancer, try one of the following configurations on your load balancer.
- Disable
X-Forwarded-For
headers for connections to your instance on ports 8080 and 8443. - Configure your load balancer to operate on Layer 4, and use the PROXY protocol instead of
X-Forwarded-For
for passthrough of client IP addresses. For more information, see "Enabling PROXY protocol support on your GitHub Enterprise Server instance."
For more information, refer to the documentation for your load balancer.
Live updates to issues and check runs not working
When your GitHub Enterprise Server instance is accessed via a load balancer or reverse proxy, expected live updates, such as new comments on issues and changes in notification badges or check run output, may not display until the page is refreshed. This is most common when the reverse proxy or load balancer is running in a layer 7 mode or does not support the required websocket protocol.
To enable live updates, you may need to reconfigure the load balancer or proxy. For more information, refer to the documentation for your load balancer.