Skip to main content
Publicamos atualizações frequentes em nossa documentação, e a tradução desta página ainda pode estar em andamento. Para obter as informações mais recentes, acesse a documentação em inglês. Se houver problemas com a tradução desta página, entre em contato conosco.

Usar o GitHub Enterprise Server com balanceador de carga

Use um balanceador de carga na frente de uma única instância de GitHub Enterprise Server ou um par de instâncias em uma configuração de alta disponibilidade.

Sobre balanceadores de carga

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.

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.

Habilitar o suporte de protocolo PROXY na your GitHub Enterprise Server instance

É altamente recomendável habilitar o suporte ao protocolo PROXY tanto para sua instância quanto para o balanceamento 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.

Note: GitHub Enterprise Server supports PROXY Protocol V1, which is incompatible with AWS Network Load Balancers. If you use AWS Network Load Balancers with GitHub Enterprise Server, do not enable PROXY support.

  1. From an administrative account on GitHub Enterprise Server, in the upper-right corner of any page, click .

    Screenshot of the rocket ship icon for accessing site admin settings

  2. If you're not already on the "Site admin" page, in the upper-left corner, click Site admin.

    Screenshot of "Site admin" link

  3. Na barra lateral esquerda, clique em Console de gerenciamento. Console de gerenciamento aba na barra lateral esquerda

  4. Na barra lateral esquerda, clique em Privacy (Privacidade). Aba de privacidade na barra lateral de configurações

  5. Em External load balancers (Balanceadores de carga externos), selecione Enable support for PROXY protocol (Habilitar suporte do protocolo PROXY). Caixa de seleção para habilitar o suporte do protocolo PROXY

  6. Na barra lateral esquerda, clique Save settings (Salvar configurações).

    Screenshot of the save settings button in the Console de gerenciamento

    Note: Saving settings in the Console de gerenciamento restarts system services, which could result in user-visible downtime.

  7. Aguarde a conclusão da execução de suas configurações.

    Configurar a instância

Mapeamentos das portas TCP PROXY

Porta de origemPorta de destinoDescrição do serviço
2223Git em SSH
8081HTTP
443444HTTPS
80808081HTTP de console de gerenciamento
84438444HTTPS de console de gerenciamento
94189419Git

Habilitar o suporte X-Forwarded-For na your GitHub Enterprise Server instance

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: Se você configurar o suporte de X-Forwarded-For no balanceador de carga de your GitHub Enterprise Server instance, talvez você não consiga se conectar ao Console de gerenciamento. Para obter mais informações, consulte "Erro: "Sua sessão venceu" para conexões com o Console de gerenciamento".

  1. From an administrative account on GitHub Enterprise Server, in the upper-right corner of any page, click .

    Screenshot of the rocket ship icon for accessing site admin settings

  2. If you're not already on the "Site admin" page, in the upper-left corner, click Site admin.

    Screenshot of "Site admin" link

  3. Na barra lateral esquerda, clique em Console de gerenciamento. Console de gerenciamento aba na barra lateral esquerda

  4. Na barra lateral esquerda, clique em Privacy (Privacidade). Aba de privacidade na barra lateral de configurações

  5. Em External load balancers (Balanceadores de carga externos), selecione Allow HTTP X-Forwarded-For header (Habilitar header HTTP X-Forwarded-For). Caixa de seleção para permitir o header HTTP X-Forwarded-For

  6. Na barra lateral esquerda, clique Save settings (Salvar configurações).

    Screenshot of the save settings button in the Console de gerenciamento

    Note: Saving settings in the Console de gerenciamento restarts system services, which could result in user-visible downtime.

  7. Aguarde a conclusão da execução de suas configurações.

    Configurar a instância

Mapeamentos de portas TCP para uso sem suporte PROXY

Porta de origemPorta de destinoDescrição do serviço
2222Git em SSH
2525SMTP
8080HTTP
443443HTTPS
80808080HTTP de console de gerenciamento
84438443HTTPS 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 a instância estiver off-line 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. Você deve promover manualmente a instância da réplica antes que ela comece a atender a pedidos. 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".

Solucionando problemas de conectividade através de um balanceador de carga

Se você não puder se conectar aos serviços em your GitHub Enterprise Server instance através de um balanceador de carga, você poderá revisar as seguintes informações para solucionar o problema.

Observação: Sempre teste alterações na sua infraestrutura de rede e configuração de instância em um ambiente de preparo. Para obter mais informações, consulte "Configurar instância de preparo".

Erro: "Sua sessão venceu" para conexões com o Console de gerenciamento

Se você habilitar o suporte para o header X-Forwarded-For na sua instância no balanceamento de carga, talvez você não consiga acessar sua instância de Console de gerenciamento. Para obter mais informações sobre o Console de gerenciamento e as portas necessárias para conexões, consulte "Acessando o console de gerenciamento" e "Portas de rede".

Se your GitHub Enterprise Server instance indica que a sua sessão venceu quando você se conectou ao Console de gerenciamento através de um balanceador de carga, experimente uma das seguintes configurações no seu balanceador de carga.

Para obter mais informações, consulte a documentação do seu balanceador de carga.