"option http-server-close" está faltando na sua configuração. Adicione e seus problemas desaparecerão.
Estou tentando configurar uma estrutura de servidor para um aplicativo que estou construindo no Node.js com o socket.io.
Minha configuração é:
HAProxy frontend forward para
-> apache2 as default backend (or nginx, is apache in this local test)
-> node.js app if the url has socket.io in the request AND a domain name
eu tenho algo parecido com:
global
log 127.0.0.1 local0
log 127.0.0.1 local1 notice
maxconn 4096
user haproxy
group haproxy
daemon
defaults
log global
mode http
maxconn 2000
contimeout 5000
clitimeout 50000
srvtimeout 50000
frontend all 0.0.0.0:80
timeout client 5000
default_backend www_backend
acl is_soio url_dom(host) -i socket.io #if the request contains socket.io
acl is_chat hdr_dom(host) -i chaturl #if the request comes from chaturl.com
use_backend chat_backend if is_chat is_soio
backend www_backend
balance roundrobin
option forwardfor # This sets X-Forwarded-For
timeout server 5000
timeout connect 4000
server server1 localhost:6060 weight 1 maxconn 1024 check #forwards to apache2
backend chat_backend
balance roundrobin
option forwardfor # This sets X-Forwarded-For
timeout queue 50000
timeout server 50000
timeout connect 50000
server server1 localhost:5558 weight 1 maxconn 1024 check #forward to node.js app
O problema vem quando eu fiz um pedido para algo como www.chaturl.com/index.html ele carrega perfeitamente, mas não carrega os arquivos socket.io (www.chaturl.com/socket.io/socket.io. js) por que ele redireciona para o apache (e deve redirecionar para o aplicativo node.js que serve os arquivos). O estranho é que se eu acessar diretamente o arquivo socket.io, depois de atualizar algumas vezes, ele carrega, então suponho que seja "cache" o encaminhamento para o cliente quando ele faz o primeiro pedido e alcança o servidor apache. / p>
Alguma sugestão de como isso pode ser resolvido? ou o que eu posso tentar ou olhar sobre isso?
Tags apache-2.2 haproxy socket node.js