Utilizar el servidor de GitHub Enterprise con un balanceador de carga
Utiliza un balanceador de carga frente a un aparato único del Servidor de GitHub Enterprise o un par de aparatos en una configuración de alta disponibilidad.
En este artículo
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 Servidor de GitHub Enterprise. 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 Servidor de GitHub Enterprise se deben resolver con el balanceador de carga. Es recomendable que habilites el aislamiento de subdominio. Si el aislamiento de subdominio está habilitado, un registro comodín adicional (*.HOSTNAME
) también se debería resolver con el balanceador de carga. Para obtener más información, consulta "Habilitar el aislamiento de subdominio."
Manejar información de conexión de clientes
Debido a que las conexiones de cliente al Servidor de GitHub Enterprise 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 balancear la carga de los puertos HTTP y HTTPS usando el encabezado X-Forwarded-For
.
Advertencia de seguridad: Cuando estén habilitados el soporte de PROXY o el redireccionamiento de HTTP, es muy importante que ningún tráfico externo pueda llegar directamente a los aparatos del Servidor de GitHub Enterprise. Si el tráfico externo no se bloquea correctamente, las direcciones IP de origen se pueden falsificar.
Habilitar soporte para protocolo de PROXY en tu instancia de servidor de GitHub Enterprise
Recomendamos firmemente habilitar el soporte para protocolo de PROXY para tu aparato y el balanceador 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 de protocolo PROXY.
-
In the upper-right corner of any page, click .
-
En la barra lateral izquierda, haz clic en Consola de administración.
-
In the left sidebar, click Privacy.
-
Dentro de External load balancers (Balanceadores de carga externos), selecciona Enable support for PROXY protocol (Habilitar soporte para el protocolo de PROXY).
-
Under the left sidebar, click Save settings.
Mapeos de puertos de protocolo TCP de PROXY
Puerto fuente | Puerto de destino | Descripción del servicio |
---|---|---|
22 | 23 | Git sobre SSH |
80 | 81 | HTTP |
443 | 444 | HTTPS |
8080 | 8081 | Consola de gestión HTTP |
8443 | 8444 | Consola de gestión de HTTPS |
9418 | 9419 | Git |
Habilitar soporte para X-Forwarded-For en tu instancia de servidor de GitHub Enterprise
Usa 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: When terminating HTTPS connections on a load balancer, the requests from the load balancer to Servidor de GitHub Enterprise also need to use HTTPS. Downgrading the connection to HTTP is not supported.
-
In the upper-right corner of any page, click .
-
En la barra lateral izquierda, haz clic en Consola de administración.
-
In the left sidebar, click Privacy.
-
Dentro de External load balancers (Balanceadores de carga externos), selecciona Allow HTTP X-Forwarded-For header (Permitir encabezados HTTP X-Forwarded-For).
-
Under the left sidebar, click Save settings.
Mapeos de puertos de protocolo TCP para usar sin soporte de PROXY
Puerto fuente | Puerto de destino | Descripción del servicio |
---|---|---|
22 | 22 | Git sobre SSH |
25 | 25 | SMTP |
80 | 80 | HTTP |
443 | 443 | HTTPS |
8080 | 8080 | Consola de gestión HTTP |
8443 | 8443 | Consola 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 el aparato está fuera de línea debido a un mantenimiento o una falla inesperada, el balanceador 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 el aparato réplica antes de que comience con las consultas activas. Para obtener más información, consulta "Configurar Servidor de GitHub Enterprise para alta disponibilidad."
Configura el balanceador de carga para verificar una de estas URL:
https://HOSTNAME/status
si HTTPS está habilitado (por defecto)http://HOSTNAME/status
si HTTPS está inhabilitado
La verificación arrojará el código de estado 200
(OK) si el nodo es correcto y está disponible para responder a las solicitudes del usuario final.
Note: When the appliance is in maintenance mode, the https://HOSTNAME/status
URL will return status code 503
(Service Unavailable). Para obtener más información, consulta "Habilitar y programar el modo mantenimiento."