Skip to main content

Esta versión de GitHub Enterprise se discontinuará el 2023-01-18. No se realizarán lanzamientos de patch, ni siquiera para problemas de seguridad críticos. Para obtener rendimiento mejorado, seguridad mejorada y nuevas características, actualice a la versión más reciente de GitHub Enterprise. Para obtener ayuda con la actualización, póngase en contacto con el soporte técnico de GitHub Enterprise.

Using GitHub Enterprise Server with a load balancer

Use a load balancer in front of a single GitHub Enterprise Server instance or a pair of instances in a High Availability configuration.

About load balancers

Un diseño de balanceador de carga utiliza un dispositivo de red para dirigir el tráfico de Git y HTTP a los aparatos individuales del GitHub Enterprise Server. Puedes utilizar un balanceador de carga para restringir el tráfico directo al aparato con fines de seguridad o para redirigir el tráfico, de ser necesario, sin cambios en los registros DNS. Es altamente recomendable utilizar un balanceador de carga basado en TPC que admita el protocolo PROXY.

Las búsquedas DNS para el nombre del host de GitHub Enterprise Server se deben resolver con el balanceador de carga. Es recomendable que habilites el aislamiento de subdominio. Si el aislamiento de subdominios está habilitado, un registro comodín adicional (*.HOSTNAME) también se debería resolver en el equilibrador de carga. Para más información, vea "Habilitación del aislamiento de subdominios".

Handling client connection information

Because client connections to GitHub Enterprise Server come from the load balancer, the client IP address can be lost.

Si tu balanceador de carga lo admite, es altamente recomendable implementar el protocolo PROXY. Cuando no está disponible el soporte de PROXY, también se puede equilibrar la carga de los puertos HTTP y HTTPS mediante el encabezado X-Forwarded-For.

Advertencia de seguridad: Cuando está habilitado la compatibilidad con PROXY o el redireccionamiento de HTTP, es muy importante que ningún tráfico externo pueda acceder directamente a los dispositivos de GitHub Enterprise Server. Si el tráfico externo no se bloquea correctamente, las direcciones IP de origen se pueden falsificar.

Advertencia: Cuando se termina una conexión HTTPS en un equilibrador de carga, en las solicitudes de este hacia GitHub Enterprise Server también es necesario usar HTTPS. Bajar la conexión de categoría a HTTP no es compatible.

Enabling PROXY protocol support on your GitHub Enterprise Server instance

We strongly recommend enabling PROXY protocol support for both your instance and the load balancer. Use the instructions provided by your vendor to enable the PROXY protocol on your load balancer. For more information, see the PROXY protocol documentation.

Nota: GitHub Enterprise Server es compatible con el protocolo de PROXY V1, que no es compatible con los equilibradores de carga de red de AWS. Si utilizas balanceadores de carga de red de AWS con GitHub Enterprise Server, no habilites la compatibilidad con el PROXY.

  1. Desde una cuenta administrativa de GitHub Enterprise Server, en la esquina superior derecha de cualquier página, haz clic en .

    Captura de pantalla del icono de cohete para acceder a los ajustes administrativos

  2. Si todavía no está en la página "Administrador del sitio", en la esquina superior izquierda, haga clic en Administrador del sitio.

    Captura de pantalla del vínculo "Administrador del sitio"

  3. En la barra lateral de la izquierda, haga clic en Consola de administración . Pestaña Consola de administración en la barra lateral de la izquierda

  4. En la barra lateral de la izquierda, haga clic en Privacy. Pestaña Privacy en la barra lateral de configuración

  5. Under External load balancers, select Enable support for PROXY protocol. Checkbox to enable support for PROXY protocol

  6. En la barra lateral de la izquierda, haga clic en Guardar configuración.

    Captura de pantalla del botón para guardar los ajustes en la Consola de administración

    Nota: Al guardar la configuración en la Consola de administración se restablecen los servicios de sistema, lo que podría generar un tiempo de inactividad visible para el usuario.

  7. Espera que se complete la fase de configuración.

    Configurar tu instancia

Mapeos de puertos de protocolo TCP de PROXY

Puerto de origenPuerto de destinoDescripción del servicio
2223Git sobre SSH
8081HTTP
443444HTTPS
80808081Consola de gestión HTTP
84438444Consola de gestión de HTTPS
94189419Git

Enabling X-Forwarded-For support on your GitHub Enterprise Server instance

Use el protocolo X-Forwarded-For solo cuando el protocolo PROXY no esté disponible. El encabezado X-Forwarded-For solo funciona con HTTP y HTTPS. La dirección IP informada para las conexiones de Git a través de SSH mostrarán la IP del balanceador de carga.

Warning: If you configure X-Forwarded-For support on your GitHub Enterprise Server instance and load balancer, you may not be able to connect to the Consola de administración. For more information, see "Error: "Your session has expired" for connections to the Consola de administración."

  1. Desde una cuenta administrativa de GitHub Enterprise Server, en la esquina superior derecha de cualquier página, haz clic en .

    Captura de pantalla del icono de cohete para acceder a los ajustes administrativos

  2. Si todavía no está en la página "Administrador del sitio", en la esquina superior izquierda, haga clic en Administrador del sitio.

    Captura de pantalla del vínculo "Administrador del sitio"

  3. En la barra lateral de la izquierda, haga clic en Consola de administración . Pestaña Consola de administración en la barra lateral de la izquierda

  4. En la barra lateral de la izquierda, haga clic en Privacy. Pestaña Privacy en la barra lateral de configuración

  5. Under External load balancers, select Allow HTTP X-Forwarded-For header. Checkbox to allow the HTTP X-Forwarded-For header

  6. En la barra lateral de la izquierda, haga clic en Guardar configuración.

    Captura de pantalla del botón para guardar los ajustes en la Consola de administración

    Nota: Al guardar la configuración en la Consola de administración se restablecen los servicios de sistema, lo que podría generar un tiempo de inactividad visible para el usuario.

  7. Espera que se complete la fase de configuración.

    Configurar tu instancia

Mapeos de puertos de protocolo TCP para usar sin soporte de PROXY

Puerto de origenPuerto de destinoDescripción del servicio
2222Git sobre SSH
2525SMTP
8080HTTP
443443HTTPS
80808080Consola de gestión HTTP
84438443Consola de gestión de HTTPS

Configuring health checks

Health checks allow a load balancer to stop sending traffic to a node that is not responding if a pre-configured check fails on that node. If the instance is offline due to maintenance or unexpected failure, the load balancer can display a status page. In a High Availability (HA) configuration, a load balancer can be used as part of a failover strategy. However, automatic failover of HA pairs is not supported. You must manually promote the replica instance before it will begin serving requests. For more information, see "Configuring GitHub Enterprise Server for High Availability."

Configura el balanceador de carga para verificar una de estas URL:

  • https://HOSTNAME/status si HTTPS está habilitado (valor predeterminado)
  • http://HOSTNAME/status si HTTPS está deshabilitado

La comprobación devolverá el código de estado 200 (correcto) si el nodo es correcto y está disponible para responder a las solicitudes del usuario final.

Nota: Cuando el dispositivo está en modo de mantenimiento, la dirección URL https://HOSTNAME/status devolverá el código de estado 503 (servicio no disponible). Para más información, vea "Habilitación y programación del modo de mantenimiento".

Troubleshooting connectivity through a load balancer

If you cannot connect to services on your GitHub Enterprise Server instance through a load balancer, you can review the following information to troubleshoot the problem.

Note: Always test changes to your network infrastructure and instance configuration in a staging environment. For more information, see "Setting up a staging instance."

Error: "Your session has expired" for connections to the Consola de administración

If you enable support for the X-Forwarded-For header on your instance and load balancer, you may not be able to access your instance's Consola de administración. For more information about the Consola de administración and ports required for connections, see "Accessing the management console" and "Network ports."

If your GitHub Enterprise Server instance indicates that your session has expired when you connect to the Consola de administración through a load balancer, try one of the following configurations on your load balancer.

For more information, refer to the documentation for your load balancer.

Live updates to issues and check runs not working

When your GitHub Enterprise Server instance is accessed via a load balancer or reverse proxy, expected live updates, such as new comments on issues and changes in notification badges or check run output, may not display until the page is refreshed. This is most common when the reverse proxy or load balancer is running in a layer 7 mode or does not support the required websocket protocol.

To enable live updates, you may need to reconfigure the load balancer or proxy. For more information, refer to the documentation for your load balancer.