Configuração de proxy reverso HAProxy
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. Não tenho muita experiência com essa configuração. Ao visitar um domínio, recebo uma mensagem de 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 }
Respostas
Este erro significa que o back-end não é considerado 'ativo'.
Primeiro, certifique-se de que o servidor de back-end 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 está conectado.
Se você conseguir fazer uma conexão com êxito, a segunda coisa a verificar é se o back-end está falhando na verificação. Experimente remover option httpchk
e remover check
da server
linha. (Quando você tem apenas um servidor de back-end, uma verificação não é de grande valor, mas você sempre pode adicioná-la novamente mais tarde)
Pode ser que você Host: localhost
esteja devolvendo algo incomum no cheque.