GitHub Enterprise Server でロードバランサを使用する
ロードバランサを、単一の GitHub Enterprise Server アプライアンス、あるいは High Availability 構成のアプライアンスのペアの前で使ってください。
A load balancer design uses a network device to direct Git and HTTP traffic to individual GitHub Enterprise Server appliances. You can use a load balancer to restrict direct traffic to the appliance for security purposes or to redirect traffic if needed without DNS record changes. We strongly recommend using a TCP-based load balancer that supports the PROXY protocol.
DNS lookups for the GitHub Enterprise Server hostname should resolve to the load balancer. We recommend that you enable subdomain isolation. If subdomain isolation is enabled, an additional wildcard record (*.HOSTNAME
) should also resolve to the load balancer. 詳しい情報については"Subdomain Isolationの有効化"を参照してください。
このガイドの内容
クライアントの接続情報の処理
GitHub Enterprise Server へのクライアント接続はロードバランサから来ることになるため、クライアントの IP アドレスは失われることがあります。
If your load balancer can support it, we strongly recommend implementing the PROXY protocol. When no PROXY support is available, it is also possible to load balance the HTTP and HTTPS ports using the X-Forwarded-For
header.
Security Warning: When either PROXY support or HTTP forwarding is enabled, it is critical that no external traffic can directly reach the GitHub Enterprise Server appliances. If external traffic is not properly blocked, the source IP addresses can be forged.
GitHub Enterprise Server インスタンスでのPROXYプロトコルサポートの有効化
アプライアンスとロードバランサの両方でPROXYプロトコルサポートを有効化することを強くおすすめします。 ロードバランサでPROXYプロトコルを有効化する方法については、ベンダーが提供する指示に従ってください。 詳しい情報についてはPROXY プロトコルのドキュメンテーションを参照してください。
-
In the upper-right corner of any page, click .
-
左サイドバーで [Management Console] をクリックします。
-
In the left sidebar, click Privacy.
-
External load balancers(外部ロードバランサ)の下でEnable support for PROXY protocol(PROXYプロトコルサポートの有効化)を選択してください。
-
Under the left sidebar, click Save settings.
PROXY protocol TCP port mappings
Source port | Destination port | Service description |
---|---|---|
22 | 23 | Git over SSH |
80 | 81 | HTTP |
443 | 444 | HTTPS |
8080 | 8081 | Management Console HTTP |
8443 | 8444 | Management Console HTTPS |
9418 | 9419 | Git |
GitHub Enterprise Server インスタンスでのX-Forwarded-Forサポートの有効化
Use the X-Forwarded-For protocol only when the PROXY protocol is unavailable. The X-Forwarded-For
header only works with HTTP and HTTPS. The IP address reported for Git connections over SSH will show the load balancer IP.
Warning: When terminating HTTPS connections on a load balancer, the requests from the load balancer to GitHub Enterprise Server also need to use HTTPS. Downgrading the connection to HTTP is not supported.
-
In the upper-right corner of any page, click .
-
左サイドバーで [Management Console] をクリックします。
-
In the left sidebar, click Privacy.
-
External load balancers(外部ロードバランサ)の下でAllow HTTP X-Forwarded-For header(HTTP X-Forwarded-Forヘッダの許可)を選択してください。
-
Under the left sidebar, click Save settings.
Protocol TCP port mappings for use without PROXY support
Source port | Destination port | Service description |
---|---|---|
22 | 22 | Git over SSH |
25 | 25 | SMTP |
80 | 80 | HTTP |
443 | 443 | HTTPS |
8080 | 8080 | Management Console HTTP |
8443 | 8443 | Management Console HTTPS |
健全性チェックの設定
ロードバランサは健全性チェックによって、事前に設定されたチェックが失敗するようになったノードがあれば、反応しなくなったノードへのトラフィックの送信を止めます。 メンテナンスもしくは予想外の障害のためにアプライアンスがオフラインになっているなら、ロードバランサはステータスページを表示できます。 High Availability(HA)設定では、ロードバランサはフェイルオーバーの戦略の一部として利用できます。 ただし、HAペアの自動フェイルオーバーはサポートされていません。 レプリカインスタンスは、手動で昇格させるとリクエストに応えられるようになります。 詳細は「High Availability 用に GitHub Enterprise Server を設定する」を参照してください。
Configure the load balancer to check one of these URLs:
https://HOSTNAME/status
if HTTPS is enabled (default)http://HOSTNAME/status
if HTTPS is disabled
The check will return status code 200
(OK) if the node is healthy and available to service end-user requests.
メモ: アプライアンスがメンテナンスモードになっている場合、URL の https://HOSTNAME/status
はステータスコード 503
(Service Unavailable) を返します。詳しい情報については「メンテナンスモードの有効化とスケジューリング」を参照してください。