Skip to main content

Utilizar el servidor de GitHub Enterprise con un balanceador de carga

Usa un equilibrador de carga delante de una única instancia de GitHub Enterprise Server o un par de instancias en una configuración de alta disponibilidad.

Acerca de los balanceadores de carga

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".

Manejar información de conexión de clientes

Debido a que las conexiones de cliente al GitHub Enterprise Server provienen del balanceador de carga, se puede perder la dirección IP del cliente.

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.

Habilitación de la compatibilidad con el protocolo de PROXY en your GitHub Enterprise Server instance

Recomendamos firmemente habilitar el soporte para protocolo de PROXY para tu instancia y el equilibrador de carga. Utiliza las instrucciones provistas por tu proveedor para habilitar el protocolo PROXY en tu balanceador de carga. Para obtener más información, consulta la documentación del protocolo de PROXY.

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" 1. 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 1. En la barra lateral de la izquierda, haga clic en Privacy. Pestaña Privacy en la barra lateral de configuración

  3. En Equilibradores de carga externos, selecciona Habilitar compatibilidad con el protocolo de PROXY. Casilla para habilitar la compatibilidad con el protocolo de PROXY 1. 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.

  4. 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

Habilitación de la compatibilidad con X-Forwarded-For en 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.

Advertencia: Si configuras la compatibilidad X-Forwarded-For en your GitHub Enterprise Server instance y el equilibrador de carga, es posible que no puedas conectarte a Consola de administración. Para obtener más información, consulta "Error: "La sesión ha expirado" para las conexiones a 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" 1. 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 1. En la barra lateral de la izquierda, haga clic en Privacy. Pestaña Privacy en la barra lateral de configuración

  3. En Equilibradores de carga externos, selecciona Permitir el encabezado HTTP X-Forwarded-For. Casilla para permitir el encabezado HTTP X-Forwarded-For 1. 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.

  4. 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

Configurar la revisión de estado

Las comprobaciones de estado permiten que un balanceador de carga deje de enviar tráfico a un nodo que no responde si una comprobación preconfigurada falla en ese nodo. Si la instancia está fuera de línea debido a un mantenimiento o un error inesperado, el equilibrador de carga puede mostrar una página de estado. En una configuración de alta disponibilidad (HA), un balanceador de carga puede usarse como parte de una estrategia de conmutación por error. Sin embargo, no está admitida la conmutación por error automática de los pares de HA. Debes impulsar de forma manual la instancia de réplica antes de que comience con las consultas activas. Para obtener más información, consulta "Configuración de GitHub Enterprise Server para alta disponibilidad".

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".

Solución de problemas de conectividad mediante un equilibrador de carga

Si no puedes conectarte a servicios en your GitHub Enterprise Server instance a través de un equilibrador de carga, puedes revisar la siguiente información para solucionar el problema.

Nota: Prueba siempre los cambios en la configuración de la infraestructura de red y de la instancia en un entorno de ensayo. Para más información, vea "Configuración de una instancia de almacenamiento provisional".

Error: "La sesión ha expirado" para las conexiones a Consola de administración

Si habilitas la compatibilidad con el encabezado X-Forwarded-For en la instancia y el equilibrador de carga, es posible que no puedas acceder a Consola de administración de la instancia. Para obtener más información sobre Consola de administración y los puertos necesarios para las conexiones, consulta "Acceso a la consola de administración" y "Puertos de red".

Si your GitHub Enterprise Server instance indica que la sesión ha expirado al conectarse a Consola de administración a través de un equilibrador de carga, prueba una de las siguientes configuraciones en el equilibrador de carga.

Para más información, consulta la documentación del equilibrador de carga.

Actualizaciones dinámicas de problemas y comprobación de ejecuciones que no funcionan

Cuando se accede a your GitHub Enterprise Server instance a través de un equilibrador de carga o un proxy inverso, es posible que las actualizaciones directas esperadas, como nuevos comentarios sobre incidencias y cambios en las señales de notificación o la salida de la ejecución de comprobación, no se muestren hasta que se actualice la página. Esto es más común cuando el proxy inverso o el equilibrador de carga se ejecutan en un modo de capa 7 o no admite el protocolo websocket necesario.

Para habilitar las actualizaciones directas, es posible que tengas que volver a configurar el equilibrador de carga o el proxy. Para más información, consulta la documentación del equilibrador de carga.