Quiero migrar algunos sitios web a un nuevo servidor. Se necesitan un par de días para realizar todos los cambios de DNS, por lo que quería configurar un proxy inverso HAProxy para redirigir todo el tráfico desde la ubicación anterior a la nueva. No tengo mucha experiencia con esa configuración. Al visitar un dominio, aparece un error que dice:
503 Service Unavailable No server is available to handle this request.
Esta es la configuración que utilicé (con dirección IP oculta):
global
log 127.0.0.1 local2
chroot /var/lib/haproxy
pidfile /var/run/haproxy.pid
maxconn 4000
user haproxy
group haproxy
daemon
# turn on stats unix socket
stats socket /var/lib/haproxy/stats
defaults
mode http
log global
option httplog
option dontlognull
option http-server-close
option forwardfor except 127.0.0.0/8
option redispatch
retries 3
timeout http-request 10s
timeout queue 1m
timeout connect 10s
timeout client 1m
timeout server 1m
timeout http-keep-alive 10s
timeout check 10s
maxconn 3000
frontend localhost
bind *:80
bind *:443 ssl crt /etc/pki/tls/certs/haproxy.pem
redirect scheme https if !{ ssl_fc }
mode http
default_backend node
backend node
mode http
option forwardfor
option httpchk HEAD / HTTP/1.1\r\nHost:localhost
server dcnode1 x.x.x.x:80 check
http-request set-header X-Forwarded-Port %[dst_port]
http-request add-header X-Forwarded-Proto https if { ssl_fc }
Respuesta1
Este error significa que el backend no se considera "activo".
Primero asegúrese de que el servidor backend esté ejecutándose y sea accesible desde la máquina HAProxy, por ejemplo, telnet x.x.x.x 80
y asegúrese de que se conecte.
Si puede establecer una conexión exitosamente, lo segundo que debe verificar es si el backend no pasa la verificación. Intente eliminar option httpchk
y elimínelo check
de la server
línea. (Cuando solo tienes un servidor backend, una verificación no es de gran valor, pero siempre puedes volver a agregarla más tarde)
Puede ser que Host: localhost
esté devolviendo algo inusual en el cheque.