Redirección de subdominio HAproxy

9

Tengo un dominio como xyz.com y estoy tratando de redirigir el subdominio otra ip con haproxy.

Utilizo tomcat en los servidores y utilizo haproxy para redirigir las solicitudes entrantes en el puerto 80 al puerto 8080.

Like;

www.xyz.com -> 10.0.0.1

www.xyz.com/abc -> 10.0.0.2
  or  abc.xyz.com -> 10.0.0.2

Para hacer esta redirección, ¿cómo configuro haproxy?

psce
fuente
44
No sé por qué te votaron 3 veces y sin ningún comentario. ¡Esta no es una muy buena etiqueta de intercambio de pila! Perdón por esta mala bienvenida.
Stefano

Respuestas:

10

En haproxy haces redirección combinando aclreglas y redirectunos; elige el servidor correcto utilizando la backendregla.

La documentación oficial de haproxy no es muy fácil de leer, pero es muy completa.

Algo como esto (solo un boceto para darle una idea):

frontend http-in
    mode              http
    bind              FRONTENDIP:80 # eg. 100.100.100.100:80

    default_backend   tomcat_server_2

    acl tomcat_1      hdr_end(host) -i www.xyz.com
    acl tomcat_2      hdr_end(host) -i abc.xyz.com
    acl tomcat_path   path_beg /abc/

    use_backend       tomcat_server_1 if tomcat_1 !tomcat_path

backend tomcat_server_1
    server tomcat1 10.0.0.1:8080 maxconn 1000

backend tomcat_server_2
    server tomcat2 10.0.0.2:8080 maxconn 1000

Si desea redirigir www.xyz.com/abc/ a abc.xyz.com:

    redirect prefix   http://abc.xyz.com if tomcat_path
Stefano
fuente
1
Gracias por el ejemplo! Creo que el segundo backend tomcat_server_1debería serbackend tomcat_server_2
redgeoff
-3

Haproxy no está destinado a redirigir nombres ni a redirigir URI.

Los nombres están dirigidos por servidores de nombres (DNS).

Los URI son redirigidos por (módulos de) un servidor web (HTTP).

Haproxy es equilibrar el tráfico (TCP / IP) entre dos (o más) servidores idénticos.

mailq
fuente
8
haproxy puede muy bien redirigir ambos prefijos (subdominio / dominio / etc.) y las URL Buscar redirect locationy redirect prefixen haproxy.1wt.eu/download/1.4/doc/configuration.txt
Stefano
8
Te equivocas, Haproxy es tanto un equilibrador de carga como un servidor proxy inverso.
jmoreira