0

2つの異なるTomcatサーバーにプロキシしたいApachehttpdがあります。

私はこれを見ます: http ://tomcat.apache.org/connectors-doc-archive/jk2/proxy.html

しかし、それは1つのTomcatサーバーのみです。8080で実行されているTomcatに加えて、8081で実行されているサーバーが1つある場合はどうなりますか?

4

3 に答える 3

2

mod_proxy_balancerを使用して負荷分散をセットアップする簡単な方法があります。バランサーを に配置するよりも、バランサーリストの下に tomcat サーバーをリストするだけProxyPassです。

<Proxy balancer://mycluster>
    BalancerMember http://tomcat1:8080/
    BalancerMember http://tomcat2:8081/
</Proxy>
ProxyPass /test balancer://mycluster 
于 2012-06-17T18:19:46.710 に答える
1

Apache httpd には、任意の数のバックエンド Tomcat インスタンスにプロキシするための 2 つの標準オプションがあります。

  1. mod_proxy_http
  2. mod_proxy_ajp

前者は通信に HTTP プロトコルを使用し、後者はバックエンド サーバーのajp://代わりにAJP プロトコルと で始まる URL を使用することを除いて、それらは互いに同じように構成されます。http://どちらも同じ方法で負荷分散、フェイルオーバーなどを構成できます。/app1別々の URL スペース (例-> Tomcat1 と-> Tomcat2)に別々のプロキシ設定を提供することで、完全に別々の Tomcat インスタンス (つまり、負荷分散なし: 別々のバックエンド) にプロキシ/app2できます。または、2 つ (またはそれ以上) のバックエンド インスタンスを設定できます。ロードバランシングなどに。

具体的には、次の httpd 構成ディレクティブのドキュメントを参照してください。

<Proxy>
BalanceMember
ProxyPass
ProxyPassReverse

これらすべてのドキュメントは、次の場所にあります。

  1. http://httpd.apache.org/docs/2.2/mod/mod_proxy.html (一般)
  2. http://httpd.apache.org/docs/2.2/mod/mod_proxy_http.html (HTTP)
  3. http://httpd.apache.org/docs/2.2/mod/mod_proxy_ajp.html (AJP)
  4. http://httpd.apache.org/docs/2.2/mod/mod_proxy_balancer.html (ロードバランサー)

AJP プロトコルを使用する必要があり、より複雑な構成が必要な場合は、使用することもできますmod_jk( not mod_jk2、これは古い、死んで、放棄された、完全に無関係なプロジェクトです)。詳細については、Tomcat サイト ( http://tomcat.apache.org/connectors-doc/mod_jk ) を参照してください。

mod_jkには根本的に異なる構成手順があり、より多くの AJP 固有のオプションがありますmod_proxy_ajp

元の投稿で言及した(古いドキュメントからの)(短い)ドキュメントは、mod_jk2Apache httpdmod_proxy_ajpmod_proxy_balancerモジュールを指しています(ただし、ドキュメントが書かれた時点で最先端だった不安定なhttpd 2.1を指しています)。あなたは正しい道を歩んでいました。読み続ける必要があったのです。ここで説明されているモジュールのいずれかを使用して、必要な数の Tomcat のバックエンド インスタンスに確実にプロキシできます。

于 2012-06-17T18:57:36.517 に答える
0

両方の LB として機能する 3 番目のサーバーに HAProxy をインストールするか、いずれかのサーバーに HAProxy をインストールしてから、次の構成を行うことができます。

HAProxy をインストールするには (Ubuntu/Debain ディストリビューションを実行している場合)

  $ sudo apt-get install haproxy
  # Setup config file in /etc/haproxy/haproxy.cnf per requirement
  # change /etc/default/ to Enabled = 1 and restart haproxy service

セットアップ後、config で次の mod を実行します。

$ sudo vim /etc/haproxy/haproxy.cfg

global
        maxconn 4096
        user haproxy
        group haproxy
        daemon

defaults
        log     global
        mode    http
        option  httplog
        option  dontlognull
        retries 3
        option  redispatch
        maxconn 2000
        contimeout      5000
        clitimeout      50000
        srvtimeout      50000

listen webcluster *:80
        mode    http
        stats   enable
        stats   auth us3r:passw0rd
        balance roundrobin
        option httpchk HEAD / HTTP/1.0
        option forwardfor
        cookie LSW_WEB insert
        option httpclose
        server web01 192.168.0.1:8080 cookie LSW_WEB01 check
        server web02 192.168.0.2:8081 cookie LSW_WEB02 check

完了したら、次の方法で HAProxy サービスを再起動します。

$ sudo service haproxy restart

ここで、192.168.0.1 と 192.168.0.2 は、ポート 8080 で実行されている 1 台と 8081 で実行されている別の 2 台のサーバーにすることができます。

参考文献 投稿: http://www.leaseweblabs.com/2011/07/high-availability-load-balancing-using-haproxy-on-ubuntu-part-1/ セットアップ方法についてググれば、オンライン ヘルプも見つかります。 Ubuntu/Debain を使用していない場合は、Linux ディストリビューションに haproxy をインストールしてください。しかし、確かに、それは仕事のための実績のあるツールなので、それに賭けることができます.

于 2012-06-17T18:10:13.077 に答える