web-dev-qa-db-ja.com

HAproxyサブドメインリダイレクト

私はxyz.comのような1つのドメインを所有しており、haproxyを使用して他のIPのサブドメインをリダイレクトしようとしています。

私はサーバーでTomcatを使用し、haproxyを使用してポート80の着信要求をポート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

このリダイレクトを行うには、どのようにhaproxyを設定しますか?

9
psce

Haproxyでは、aclルールとredirectルールを組み合わせてリダイレクトを行います。 backendルールを使用して適切なサーバーを選択します。

公式の haproxyのドキュメント は読みにくいですが、非常に完全です。

このようなもの(あなたにアイデアを与えるための単なるスケッチ):

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

リダイレクトしたい場合www.xyz.com/abc/からabc.xyz.com

    redirect prefix   http://abc.xyz.com if Tomcat_path
10
Stefano