
Estoy migrando parte de la infraestructura de varios servidores que alojan sitios específicos a una arquitectura de equilibrio de carga usandoHAProxy1.3.15.7 en OpenBSD 4.6 macppc. Naturalmente, estoy empezando a configurar el cambio de contenido para la configuración actual (sitios específicos en servidores específicos) y mi /etc/haproxy/haproxy.cfg es el siguiente:
global
log 127.0.0.1 local0
log 127.0.0.1 local1 notice
#log loghost local0 info
maxconn 1024
chroot /var/haproxy
uid 604
gid 604
daemon
#debug
#quiet
pidfile /var/run/haproxy.pid
defaults
log global
mode http
option httplog
option dontlognull
option redispatch
retries 3
maxconn 2000
contimeout 5000
clitimeout 50000
srvtimeout 50000
stats enable
stats auth user:pass
frontend http_proxy *:80
# check to see which domain the reguest is for
acl host_tld.domain.sub1 hdr_end(host) sub1.domain.tld
acl host_tld.domain.sub2 hdr_end(host) sub2.domain.tld
# send to the correct server
use_backend server2 if host_tld.domain.sub1 or host_tld.domain.sub2
default_backend server1
backend server1
server httpd_server1 192.168.1.3:80
backend server2
server httpd_server2 192.168.1.4:80
El objetivo es que todos los dominios sean atendidos server1
excepto los dominios sub1.domain.tld
& sub2.domain.tld
que deberían ser distribuidos en server2
su lugar. Sin embargo, cuando intento iniciar HAProxy, aparece los siguientes errores:
parsing /etc/haproxy/haproxy.cfg : backend 'server2' has no dispatch address and is not in transparent or balance mode.
parsing /etc/haproxy/haproxy.cfg : backend 'server1' has no dispatch address and is not in transparent or balance mode.
Errors found in configuration file, aborting.
Error reading configuration file : /etc/haproxy/haproxy.cfg
He mirado los ejemplos enumerados enla documentación de HAProxy 1.3yhttp://upstre.am/2008/01/09/using-haproxy-with-multiple-backends-aka-content-switching/, pero no veo dónde me he equivocado. Ninguno de los ejemplos parece requerir option transparent
ni un modo de equilibrio. Además, curiosamente la documentación para la dispatch
opción se omite en la documentación 1.3, pero dudo que sea útil para solucionar problemas de todos modos.
¿Dónde me he equivocado?
Respuesta1
Olvidó la línea "equilibrio por turnos" (o equivalente), ya que necesita tener un algoritmo de equilibrio en un backend. Además, está cambiando de contenido, así que agregue la "opción httpclose" en su interfaz o en la sección predeterminada; de lo contrario, las segundas solicitudes de conexiones de mantenimiento de conexión no coincidirán.