Um design de balanceador de carga usa um dispositivo de rede para direcionar o Git e o tráfego HTTP para appliances individuais GitHub Enterprise Server. Você pode usar um balanceador de carga para restringir o tráfego direto para o appliance para fins de segurança, ou redirecionar o tráfego se necessário sem alterações no registro de DNS. Recomendamos fortemente usar um balanceador de carga baseado em TCP que suporte o protocolo PROXY.
Buscas de DNS para o nome de host GitHub Enterprise Server devem se resolver para o balanceador de carga. Recomendamos que você ative o isolamento de subdomínio. Se o isolamento do subdomínio estiver ativado, um registro adicional de curinga (*.HOSTNAME
) também deve resolver para o balanceador de carga. 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.
Se o seu balanceador de carga puder apoiá-lo, recomendamos fortemente a implementação do protocolo PROXY. Quando não há suporte PROXY disponível, também é possível carregar o saldo das portas HTTP e HTTPS usando o cabeçalho X-Forwarded-For
.
Aviso de Segurança: Quando o suporte PROXY ou encaminhamento de HTTP está ativado, é fundamental que nenhum tráfego externo possa alcançar diretamente os appliances do GitHub Enterprise Server. Se o tráfego externo não estiver corretamente bloqueado, os endereços IP de origem podem ser forjados.
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.
- A partir de uma conta administrativa em GitHub Enterprise Server, clique em no canto superior direito de qualquer página.
- Na barra lateral esquerda, clique em Console de gerenciamento.
- Na barra lateral esquerda, clique em Privacy (Privacidade).
- Em External load balancers (Balanceadores de carga externos), selecione Enable support for PROXY protocol (Habilitar suporte do protocolo PROXY).
- Na barra lateral esquerda, clique Save settings (Salvar configurações).
- Aguarde a conclusão da execução de suas configurações.
Mapeamentos das portas TCP PROXY
Porta de origem | Porta de destino | Descrição do serviço |
---|---|---|
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
Usar o protocolo X-Forwarded-For only quando o protocolo PROXY não estiver disponível. O cabeçalho X-Forwarded-For
funciona somente com HTTP e HTTPS. O endereço IP informado para conexões Git por SSH mostrará o IP do balanceador de carga.
Aviso: Ao encerrar conexões HTTPS em um balanceador de carga, as solicitações do balanceador de carga para GitHub Enterprise Server também precisam usar HTTPS. O downgrading da conexão para HTTP não é suportado.
- A partir de uma conta administrativa em GitHub Enterprise Server, clique em no canto superior direito de qualquer página.
- Na barra lateral esquerda, clique em Console de gerenciamento.
- Na barra lateral esquerda, clique em Privacy (Privacidade).
- Em External load balancers (Balanceadores de carga externos), selecione Allow HTTP X-Forwarded-For header (Habilitar header HTTP X-Forwarded-For).
- Na barra lateral esquerda, clique Save settings (Salvar configurações).
- Aguarde a conclusão da execução de suas configurações.
Mapeamentos de portas TCP para uso sem suporte PROXY
Porta de origem | Porta de destino | Descrição do serviço |
---|---|---|
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 o balanceador de carga para verificar uma destas URLs:
https://HOSTNAME/status
if HTTPS is enabled (default)http://HOSTNAME/status
if HTTPS is disabled
A verificação retornará o código de estado 200
(OK) se o nó estiver saudável e disponível para solicitações de usuário final.
Nota: Quando o appliance estiver em modo de manutenção, a URL https://HOSTNAME/status
retornará o código de status 503
(Serviço Indisponível). Para obter mais informações, consulte "Habilitar e programar o modo de manutenção".