
Tengo una configuración donde el Servidor A actúa como cliente y se comunica con el Servidor B a través de HAProxy. El servidor B ejecuta cuatro instancias de Golang Fiber similares, cada una con Prefork habilitado en una instancia EC2 t3xlarge. El servidor B maneja miles de solicitudes por segundo. Sin embargo, he notado problemas con las comprobaciones de estado y errores 502 devueltos por HAProxy, lo que probablemente indica controles de salud fallidos.
Configuración de interfaz:
frontend apifront
bind *:9898
maxconn 50000
mode http
log global
default_backend apiserver
Configuración de fondo:
backend apiserver
mode http
option http-keep-alive
timeout connect 5s
timeout server 30s
timeout queue 60s
timeout check 5s
timeout http-request 10s
timeout http-keep-alive 10s
http-reuse safe
log global
option httpchk GET /health
balance roundrobin
server apiserver1 localhost:9881 check
server apiserver2 localhost:9882 check
server apiserver3 localhost:9883 check
server apiserver4 localhost:9884 check
Observaciones:
- Todos los servidores fallan las comprobaciones de estado más veces de lo esperado.
- HAProxy devuelve errores 502 frecuentes como se ve en los registros del servidor A
Preguntas:
- ¿Se espera el comportamiento observado de fallas frecuentes en las comprobaciones de estado y errores 502 en esta configuración?
- ¿Existen formas de solucionar problemas e identificar la causa raíz de las fallas en las comprobaciones de estado?
- ¿Qué ajustes o ajustes se pueden hacer para mejorar la confiabilidad de los controles de salud y reducir los errores 502?
- Como recién llegado a las configuraciones de configuración del servidor, ¿existen mejores prácticas o comprobaciones adicionales que debo considerar?
Cualquier idea u orientación para resolver este problema será muy apreciada. También estoy dispuesto a proporcionar más detalles sobre mi configuración que puedan ayudar. ¡Gracias!