Skip to main content

此版本的 GitHub Enterprise 已停止服务 2022-10-12. 即使针对重大安全问题,也不会发布补丁。 为了获得更好的性能、更高的安全性和新功能,请升级到最新版本的 GitHub Enterprise。 如需升级帮助,请联系 GitHub Enterprise 支持

群集网络配置

GitHub Enterprise Server 集群依� 正确的 DNS 名称解析、负载均衡以及节点之间的通信来正常运行。

网络注意事项

对于集群而言,最简单的网络设计是将节点置于单个 LAN 上。 如果群集必须跨子网,我们不建议在网络之间配置任何防火墙规则。 节点之间的延迟应小于 1 毫秒。

为获取高可用性,具有主动节点的网络与具有被动节点的网络之间的延迟必须小于 70 毫秒。 我们不建议在两个网络之间配置防火墙。

最终用户的应用程序端口

应用程序端口为最终用户提供 Web 应用程序和 Git 访问。

端口说明� 密
22/TCP通过 SSH 访问 Git
25/TCPSMTP需要 STARTTLS
80/TCPHTTP
(启用 SSL 后,此端口重定向到 HTTPS)
443/TCPHTTPS
9418/TCP简单的 Git 协议端口
(以私密模式禁用)

管理端口

最终用户在使用基本应用程序时不需要管理端口。

端口说明� 密
ICMPICMP Ping
122/TCP管理 SSH
161/UDPSNMP
8080/TCPManagement Console HTTP
(启用 SSL 后,此端口重定向到 HTTPS)
8443/TCPManagement Console HTTPS

集群通信端口

如果节点之间存在网络级防火墙,则需要访问这些端口。 节点之间的通信未� 密。 这些端口不应从外部访问。

端口说明
1336/TCP内部 API
3033/TCP内部 SVN 访问
3037/TCP内部 SVN 访问
3306/TCPMySQL
4486/TCP管理者访问
5115/TCP存储后端
5208/TCP内部 SVN 访问
6379/TCPRedis
8001/TCPGrafana
8090/TCP内部 GPG 访问
8149/TCPGitRPC 文件服务器访问
8300/TCPConsul
8301/TCPConsul
8302/TCPConsul
9000/TCPGit Daemon
9102/TCP页面文件服务器
9105/TCPLFS 服务器
9200/TCPElasticsearch
9203/TCP语义代� �服务
9300/TCPElasticsearch
11211/TCPMemcache
161/UDPSNMP
8125/UDPStatsd
8301/UDPConsul
8302/UDPConsul
25827/UDPCollectd

配置负载均衡器

我们建议使用基于 TCP 的外部负载均衡器,它支持 PROXY 协议来跨节点分配流量。 请考虑以下负载均衡器配置:

  • TCP 端口(如下所示)应转发到运行 web-server 服务的节点。 这些是提供外部客户端请求的唯一节点。
  • 不应启用粘性会话。

警告:在负载均衡器上终止 HTTPS 连接时,从负载均衡器到 GitHub Enterprise Server 的请求也需要使用 HTTPS。 不支持降级到 HTTP 连接。

处理客户端连接信息

由于客户端与集群的连接来自负载均衡器,� 此客户端 IP 地址可能会丢失。 要正确捕获客户端连接信息,需要考虑其他� � 。

如果您的负载均衡器可以支持 PROXY 协议,我们强烈建议您实施该协议。 如果不能提供 PROXY 支持,使用 X-Forwarded-For � �头也可以对 HTTP 和 HTTPS 端口进行负载均衡。

安全警告:启用了 PROXY 支持或 HTTP 转发时,重要的是确保没有外部流量可以直接到达 GitHub Enterprise Server 设备。 如果未能正确阻止外部流量,则源 IP 地址可能被伪� 。

在 GitHub Enterprise Server 上启用 PROXY 支持

我们强烈建议您为实例和负载均衡器启用 PROXY 支持。

注意:GitHub Enterprise Server 支持与 AWS 网络负载均衡器不兼容的 PROXY 协议 V1。 如果将 AWS 网络负载均衡器与 GitHub Enterprise Server 配合使用,请不要启用 PROXY 支持。

  • 对于您的实例,请使用以下命令:

    $ ghe-config 'loadbalancer.proxy-protocol' 'true' && ghe-cluster-config-apply
  • 对于负载均衡器,请使用供应商提供的说明。

    PROXY 协议 TCP 端口� 射

源端口目� �端口服务说明
2223通过 SSH 访问 Git
8081HTTP
443444HTTPS
80808081Management Console HTTP
84438444Management Console HTTPS
94189419Git

在 GitHub Enterprise Server 上启用 X-Forwarded-For 支持

仅当 PROXY 协议不可用时才使用 X-Forwarded-For 协议。 X-Forwarded-For � �头仅适用于 HTTP 和 HTTPS。 基于 SSH 的 Git 连接报告的 IP 地址将显示负载均衡器 IP。

若要启用 X-Forwarded-For � �头,请使用以下命令:

$ ghe-config 'loadbalancer.http-forward' 'true' && ghe-cluster-config-apply

协议 TCP 端口� 射,� 需 PROXY 支持即可使用

源端口目� �端口服务说明
2222通过 SSH 访问 Git
2525SMTP
8080HTTP
443443HTTPS
80808080Management Console HTTP
84438443Management Console HTTPS

配置状态检查

如果预配置的检查在该节点上失败,则状态检查允许负载均衡器停止向未响应的节点发送流量。 如果集群节点出现故障,则与冗余节点配对的状态检查可提供高可用性。

配置负载均衡器以检查以下 URL 之一:

  • 如果已启用 HTTPS(默认),则检查 https://HOSTNAME/status
  • 如果已禁用 HTTPS(默认),则检查 http://HOSTNAME/status

如果节点运行正常并且可为最终用户的请求提供服务,则检查将返回状态代� � 200(正常)。

注意: 当设备处于维护模式时,https://HOSTNAME/status URL 将返回状态代� � 503(服务不可用)。 有关详细信息,请参阅“启用和安排维护模式”。

DNS 要求

对 GitHub Enterprise Server 主机名的 DNS 查询应解析为负载均衡器。 我们建议您启用子域隔离。 如果启用了子域隔离,另一个通配符记录 *.HOSTNAME 也应解析到负载均衡器。 有关详细信息,请参阅“启用子域隔离”。