负载均衡器设计使用网络设备将 Git 和 HTTP 流量引导至各个 GitHub Enterprise Server 设备。 您可以使用负载均衡器限制引导至设备的流量以确保安全,或者在没有 DNS 记录更改的情况下根据需要重定向流量。 我们强烈建议使用支持 PROXY 协议的基于 TCP 负载均衡器。
对 GitHub Enterprise Server 主机名的 DNS 查询应解析为负载均衡器。 我们建议您启用子域隔离。 如果启用了子域隔离,另一个通配符记录 (*.HOSTNAME) 也应解析为负载均衡器。 更多信息请参阅“启用子域隔离”。
处理客户端连接信息
由于与 GitHub Enterprise Server 的客户端连接来自负载均衡器,因此客户端 IP 可丢失。
如果您的负载均衡器可以支持 PROXY 协议,我们强烈建议您实施该协议。 如果不能提供 PROXY 支持,使用 X-Forwarded-For 标头也可以对 HTTP 和 HTTPS 端口进行负载平衡。
安全警告:启用了 PROXY 支持或 HTTP 转发时,重要的是确保没有外部流量可以直接到达 GitHub Enterprise Server 设备。 如果未能正确阻止外部流量,则源 IP 地址可能被伪造。
在 您的 GitHub Enterprise Server 实例 上启用 PROXY 协议支持
强烈建议同时为您的设备和负载均衡器启用 PROXY 协议支持。 按照您的供应商提供的说明操作,在负载均衡器上启用 PROXY 协议。 更多信息请参阅 PROXY 协议文档。
- 在任何页面的右上角,单击 。  
- 在左侧边栏中,单击 管理控制台。  
- 在左侧边栏中,单击 Privacy(隐私)。  
- 在 External load balancers 下,选择 Enable support for PROXY protocol。  
- 在左侧边栏下,单击 Save settings(保存设置)。  
PROXY 协议 TCP 端口映射
| 源端口 | 目标端口 | 服务描述 | 
|---|---|---|
| 22 | 23 | 通过 SSH 访问 Git | 
| 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 支持
仅当 PROXY 协议不可用时才使用 X-Forwarded-For 协议。 X-Forwarded-For 标头仅适用于 HTTP 和 HTTPS。 基于 SSH 的 Git 连接报告的 IP 地址将显示负载均衡器 IP。
警告: 在负载均衡器上终止 HTTPS 连接时,从负载均衡器到 GitHub Enterprise Server 的请求也需要使用 HTTPS。 不支持降级到 HTTP 连接。
- 在任何页面的右上角,单击 。  
- 在左侧边栏中,单击 管理控制台。  
- 在左侧边栏中,单击 Privacy(隐私)。  
- 在 External load balancers 下,选择 Allow HTTP X-Forwarded-For header。  
- 在左侧边栏下,单击 Save settings(保存设置)。  
协议 TCP 端口映射,无需 PROXY 支持即可使用
| 源端口 | 目标端口 | 服务描述 | 
|---|---|---|
| 22 | 22 | 通过 SSH 访问 Git | 
| 25 | 25 | SMTP | 
| 80 | 80 | HTTP | 
| 443 | 443 | HTTPS | 
| 8080 | 8080 | Management Console HTTP | 
| 8443 | 8443 | Management Console HTTPS | 
配置健康状态检查
如果预配置的检查在该节点上失败,则状态检查允许负载均衡器停止向未响应的节点发送流量。 如果设备因维护或计划外的故障而离线,负载均衡器可以显示状态页面。 在高可用性 (HA) 配置下,负载均衡器可用作故障转移策略的组成部分。 不过,不支持 HA 对的自动故障转移。 在副本设备开始为请求提供服务之前,您必须手动升级副本设备。 更多信息请参阅“配置 GitHub Enterprise Server 以实现高可用性”。
配置负载均衡器以检查以下 URL 之一:
- https://HOSTNAME/status,如果 HTTPS 已启用(默认)
- http://HOSTNAME/status,如果 HTTPS 被禁用
如果节点运行正常并且可为最终用户的请求提供服务,则检查将返回状态代码 200 (OK)。
注意: 当设备处于维护模式时,https://HOSTNAME/status URL 将返回状态代码 503(服务不可用)。 更多信息请参阅“启用和排定维护模式”。