Redirection de sous-domaine HAproxy

9

Je possède un domaine comme xyz.com et j'essaie de rediriger un autre sous-domaine avec un haproxy.

J'utilise tomcat sur les serveurs et j'utilise haproxy pour rediriger les demandes entrantes sur le port 80 vers le port 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

Afin de faire cette redirection, comment puis-je définir haproxy?

psce
la source
4
Je ne sais pas pourquoi vous avez voté 3 fois et sans aucun commentaire. Ce n'est pas une très bonne étiquette d'échange de pile! Désolé pour ce mauvais accueil.
Stefano

Réponses:

10

Dans haproxy, vous effectuez une redirection combinant des aclrègles et des règles redirect; vous choisissez le bon serveur en utilisant la backendrègle.

La documentation officielle de haproxy n'est pas très facile à lire, mais elle est très complète.

Quelque chose comme ça (juste un croquis pour vous donner une idée):

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 vous souhaitez rediriger www.xyz.com/abc/ vers abc.xyz.com:

    redirect prefix   http://abc.xyz.com if tomcat_path
Stefano
la source
1
Merci pour l'exemple! Je pense que le deuxième backend tomcat_server_1devrait êtrebackend tomcat_server_2
redgeoff le
-3

Haproxy n'est ni destiné à rediriger les noms ni à rediriger les URI.

Les noms sont dirigés par des serveurs de noms (DNS).

Les URI sont redirigés par (modules de) un serveur Web (HTTP).

Haproxy consiste à équilibrer le trafic (TCP / IP) entre deux (ou plus) serveurs identiques.

mailq
la source
8
haproxy peut très bien rediriger les préfixes (sous-domaine / domaine / etc.) et les URL. Rechercher redirect locationet redirect prefixdans haproxy.1wt.eu/download/1.4/doc/configuration.txt
Stefano
8
Vous vous trompez, Haproxy est à la fois un équilibreur de charge et un serveur proxy inverse.
jmoreira