Usar o GitHub Enterprise Server com balanceador de carga
Use um balanceador de carga na frente de um appliance ou de um par de appliances do GitHub Enterprise Server em uma configuração de alta disponibilidade.
Neste artigo
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. Para obter mais informações, consulte "Habilitar isolamento de subdomínio".
Informações de conexão do cliente
Como as conexões do cliente com o GitHub Enterprise Server vêm do balanceador de carga, pode ocorrer a perda do endereço IP do cliente.
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.
Habilitar o suporte de protocolo PROXY na sua instância do GitHub Enterprise Server
É altamente recomendável ativar o suporte de protocolo PROXY para o appliance e o balanceador de carga. Use as instruções do fornecedor para habilitar o protocolo PROXY no balanceador de carga. Para obter mais informações, consulte a documentação do protocolo PROXY.
-
In the upper-right corner of any page, click .
-
In the left sidebar, click Console de gerenciamento.
-
In the left sidebar, click Privacy.
-
Em External load balancers (Balanceadores de carga externos), selecione Enable support for PROXY protocol (Habilitar suporte do protocolo PROXY).
-
Under the left sidebar, click Save settings.
PROXY protocol TCP port mappings
Source port | Destination port | Service description |
---|---|---|
22 | 23 | Git em SSH |
80 | 81 | HTTP |
443 | 444 | HTTPS |
8080 | 8081 | HTTP de console de gerenciamento |
8443 | 8444 | HTTPS de console de gerenciamento |
9418 | 9419 | Git |
Habilitar o suporte X-Forwarded-For na sua instância do GitHub Enterprise Server
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 .
-
In the left sidebar, click Console de gerenciamento.
-
In the left sidebar, click Privacy.
-
Em External load balancers (Balanceadores de carga externos), selecione Allow HTTP X-Forwarded-For header (Habilitar 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 em SSH |
25 | 25 | SMTP |
80 | 80 | HTTP |
443 | 443 | HTTPS |
8080 | 8080 | HTTP de console de gerenciamento |
8443 | 8443 | HTTPS de console de gerenciamento |
Configurar verificações de integridade
As verificações de integridade permitem que um balanceador de carga pare de enviar tráfego para um nó que não responde em caso de falha na verificação pré-configurada do nó em questão. Se o appliance estiver offline devido a manutenção ou falha inesperada, o balanceador de carga poderá exibir uma página de status. Em configurações de alta disponibilidade (HA), é possível usar balanceadores de carga como parte da estratégia de failover. No entanto, não há suporte para failover automático de pares de HA. Promova manualmente o appliance réplica antes que ele comece a atender a solicitações. Para obter mais informações, consulte "Configurar o GitHub Enterprise Server para alta disponibilidade".
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.
Note: When the appliance is in maintenance mode, the https://HOSTNAME/status
URL will return status code 503
(Service Unavailable). Para obter mais informações, consulte "Habilitar e programar o modo de manutenção".