Przekierowanie subdomeny HAproxy

9

Mam jedną domenę, taką jak xyz.com, i próbuję przekierować subdomenę na inny adres IP za pomocą haproxy.

Używam tomcat na serwerach i używam haproxy do przekierowywania przychodzących żądań z portu 80 na 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

Aby ustawić to przekierowanie, jak ustawić haproxy?

psce
źródło
4
Nie wiem, dlaczego zostałeś oceniony 3 razy i bez komentarza. To nie jest bardzo dobra etykieta wymiany stosu! Przepraszam za to złe powitanie.
Stefano

Odpowiedzi:

10

W haproxy dokonuje się przekierowania, łącząc aclreguły i reguły redirect; wybierasz odpowiedni serwer za pomocą backendreguły.

Oficjalna dokumentacja haproxy nie jest łatwa do odczytania, ale jest bardzo kompletna.

Coś w tym stylu (tylko szkic przedstawiający pomysł):

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

Jeśli chcesz przekierować www.xyz.com/abc/ na abc.xyz.com:

    redirect prefix   http://abc.xyz.com if tomcat_path
Stefano
źródło
1
Dzięki za przykład! Myślę, że drugi backend tomcat_server_1powinien byćbackend tomcat_server_2
redgeoff
-3

Haproxy nie ma na celu przekierowywania nazw ani przekierowywania identyfikatorów URI.

Nazwy są kierowane przez serwery nazw (DNS).

Identyfikatory URI są przekierowywane przez (moduły) serwera WWW (HTTP).

Haproxy ma równoważyć ruch (TCP / IP) między dwoma (lub więcej) identycznymi serwerami.

mailq
źródło
8
haproxy potrafi bardzo dobrze przekierowywać zarówno prefiksy (subdomena / domena / itp.), jak i adresy URL. Wyszukaj redirect locationi redirect prefixna haproxy.1wt.eu/download/1.4/doc/configuration.txt
Stefano
8
Mylisz się, Haproxy jest zarówno modułem równoważącym obciążenie, jak i odwrotnym serwerem proxy.
jmoreira