Configuración de la red
La agrupación de Servidor de GitHub Enterprise se basa en la resolución de nombre de DNS pertinente, balanceo de carga y comunicación entre los nodos para operar de manera adecuada.
Consideraciones de red
El diseño de red más simple para una agrupación es colocar los nodos en una LAN única. Si una agrupación redundante debe abarcar varias subredes, las rutas apropiadas deben estar disponibles entre las subredes y la latencia debería ser menor que 1ms.
Puertos de la aplicación para usuarios finales
Los puertos de la aplicación permiten que los usuarios finales accedan a Git y a las aplicaciones web.
Puerto | Descripción | Cifrado |
---|---|---|
22/TCP | Git sobre SSH | Sí |
25/TCP | SMTP | Requiere STARTTLS |
80/TCP | HTTP | No
(Cuando SSL está habilitado, este puerto redirige a HTTPS) |
443/TCP | HTTPS | Sí |
9418/TCP | Puerto de protocolo de Git simple
(Inhabilitado en modo privado) |
No |
Puertos administrativos
No se requieren puertos administrativos para el uso de la aplicación base por parte de los usuarios finales.
Puerto | Descripción | Cifrado |
---|---|---|
ICMP | Ping de ICMP | No |
122/TCP | SSH administrativo | Sí |
161/UDP | SNMP | No |
8080/TCP | Consola de gestión HTTP | No
(Cuando SSL está habilitado, este puerto redirige a HTTPS) |
8443/TCP | Consola de gestión de HTTPS | Sí |
Puertos de comunicación de agrupación
Si un cortafuego de nivel de red se coloca entre los nodos estos puertos deberán estar accesibles. La comunicación entre los nodos no está cifrada. Estos puertos no deberían estar accesibles externamente.
Puerto | Descripción |
---|---|
1336/TCP | API interna |
3033/TCP | Acceso SVN interno |
3037/TCP | Acceso SVN interno |
3306/TCP | MySQL |
4486/TCP | Acceso del gobernador |
5115/TCP | Respaldo de almacenamiento |
5208/TCP | Acceso SVN interno |
6379/TCP | Redis |
8001/TCP | Grafana |
8090/TCP | Acceso a GPG interno |
8149/TCP | Acceso al servidor de archivos GitRPC |
9000/TCP | Git Daemon |
9102/TCP | Servidor de archivos de páginas |
9105/TCP | Servidor LFS |
9200/TCP | ElasticSearch |
9203/TCP | Servicio de código semántico |
9300/TCP | ElasticSearch |
11211/TCP | Memcache |
161/UDP | SNMP |
8125/UDP | Statsd |
25827/UDP | Collectd |
Configurar un balanceador de carga
Recomendamos un balanceador de carga externo basado en TCP que respalde el protocolo PROXY para distribuir el tráfico a través de los nodos. Considera estas configuraciones del balanceador de carga:
- Los puertos TCP (que se muestra a continuación) deberán ser reenviados a los nodos que ejecutan el servicio
web-server
. Estos son los únicos nodos que sirven a las solicitudes de clientes externos. - Las sesiones pegajosas no deberían habilitarse.
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.
Manejar información de conexión de clientes
Dado que las conexiones de clientes con el agrupamiento provienen del balanceador de carga, no se puede perder la dirección IP de cliente. Para capturar adecuadamente la información de la conexión de clientes, se requiere una consideración adicional.
If your load balancer can support it, we strongly recommend implementing the PROXY protocol. When no PROXY support is available, it is also possible to load balance the HTTP and HTTPS ports using the X-Forwarded-For
header.
Security Warning: When either PROXY support or HTTP forwarding is enabled, it is critical that no external traffic can directly reach the Servidor de GitHub Enterprise appliances. If external traffic is not properly blocked, the source IP addresses can be forged.
Habilitar el soporte PROXY en Servidor de GitHub Enterprise
Recomendamos firmemente habilitar el soporte PROXY para tu instancia y el balanceador de carga.
-
Para tu instancia, usa este comando:
$ ghe-config 'loadbalancer.proxy-protocol' 'true' && ghe-cluster-config-apply
- Para el balanceador de carga, usa las instrucciones proporcionadas por tu proveedor.
PROXY protocol TCP port mappings
Source port | Destination port | Service description |
---|---|---|
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 el soporte X-Forwarded-For en Servidor de GitHub Enterprise
Use the X-Forwarded-For protocol only when the PROXY protocol is unavailable. The X-Forwarded-For
header only works with HTTP and HTTPS. The IP address reported for Git connections over SSH will show the load balancer IP.
Para habilitar el encabezado X-Fowarded-For
, usa este comando:
$ ghe-config 'loadbalancer.http-forward' 'true' && ghe-cluster-config-apply
Protocol TCP port mappings for use without PROXY support
Source port | Destination port | Service description |
---|---|---|
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 revisiones 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 un nodo de agrupación falla, las revisiones de estado emparejadas con nodos redundantes brindan alta disponibilidad.
Configure the load balancer to check one of these URLs:
https://HOSTNAME/status
if HTTPS is enabled (default)http://HOSTNAME/status
if HTTPS is disabled
The check will return status code 200
(OK) if the node is healthy and available to service end-user requests.
Nota: Cuando el aparato se encuentre en el modo de mantenimiento, la URL https://HOSTNAME/status
devolverá el código de estado 503
(Servicio no disponible). Para obtener más información, consulta "Habilitar y programar el modo de mantenimiento."
Requisitos de DNS
DNS lookups for the Servidor de GitHub Enterprise hostname should resolve to the load balancer. We recommend that you enable subdomain isolation. If subdomain isolation is enabled, an additional wildcard record (*.HOSTNAME
) should also resolve to the load balancer. Para obtener más información, consulta "Habilitar el aislamiento de subdominio."