Quero migrar alguns sites para um novo servidor. Demora alguns dias para fazer todas as alterações de DNS, então eu queria configurar um proxy reverso HAProxy para redirecionar todo o tráfego do local antigo para o novo local. Não tenho muita experiência com essa configuração. Ao visitar um domínio, recebo um erro dizendo:
503 Service Unavailable No server is available to handle this request.
Esta é a configuração que usei (com endereço IP oculto):
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 }
Responder1
Este erro significa que o backend não é considerado 'ativo'.
Primeiro, certifique-se de que o servidor backend esteja em execução e acessível a partir da máquina HAProxy, por exemplo, telnet x.x.x.x 80
e certifique-se de que ele esteja conectado.
Se você conseguir estabelecer uma conexão com êxito, a segunda coisa a verificar é se o back-end está falhando na verificação. Tente remover option httpchk
e remova check
da server
linha. (Quando você tem apenas um servidor back-end, uma verificação não tem grande valor, mas você sempre pode adicioná-la novamente mais tarde)
Pode ser que você Host: localhost
esteja retornando algo incomum no cheque.