Eu tenho o mesmo problema. Meu HAProxy estava funcionando (confirmado com curl) localmente. O comando
iptables -P INPUT ACCEPT && iptables -P OUTPUT ACCEPT
resolveu meu problema!
Basta configurar o HAProxy pela primeira vez, como um balanceador de carga único, equilibrando dois servidores, cada um executando Varnish e Nginx.
Aqui está o arquivo cfg:
global
#uid 99
#gid 99
daemon
stats socket /var/run/haproxy.stat mode 600 level admin
maxconn 40000
ulimit-n 81000
pidfile /var/run/haproxy.pid
defaults
mode http
contimeout 4000
clitimeout 42000
srvtimeout 43000
balance roundrobin
listen webfarm 91.227.223.61:80
mode http
stats enable
stats auth admin:password
balance roundrobin
cookie web insert indirect nocache
option httpclose
option forwardfor
option httpchk HEAD /check.txt HTTP/1.0
server webA 91.227.223.58:80 cookie A check
server webB 91.227.221.121:80 cookie B check
option forwardfor except 91.227.223.61
reqadd X-Forwarded-Proto:\ https
reqadd FRONT_END_HTTPS:\ on
listen stats :7777
stats enable
stats uri /
option httpclose
stats auth admin:password
O problema é que isso só funciona do host local. Se eu fizer curl 91.227.223.61
da máquina local, a página será carregada corretamente. De qualquer outra máquina, eu espero vários segundos para a página expirar.
Parece que não existe nenhum firewall em nenhum dos servidores (ainda) e tentei iptables -F
em cada máquina.
Eu tenho o mesmo problema. Meu HAProxy estava funcionando (confirmado com curl) localmente. O comando
iptables -P INPUT ACCEPT && iptables -P OUTPUT ACCEPT
resolveu meu problema!
Para os registros, use apenas log 127.0.0.1 local0
(sem a filtragem em notice
) e certifique-se de que seu syslogd esteja escutando o soquete UDP (por exemplo: syslogd -r
). Por favor, adicione também "opção httplog" para obter um registro da solicitação completa.
O que você descreve me faz pensar em três possibilidades:
Os logs vão te dizer isso. BTW, você tentou com curl -i
ou telnet
para ver o que é retornado pelo servidor?
Além disso, quando você configurar essa configuração, substitua "option httpclose" por "option http-server-close", que suportará o keep-alive de HTTP do lado do cliente (suponho que você esteja executando 1.4 ou 1.5 -dev), resultando em melhor desempenho e menor latência.
talvez iptables -F
não seja suficiente. Experimente iptables -P INPUT ACCEPT && iptables -P OUTPUT ACCEPT
Tags haproxy