2つの異なるTomcatサーバーにプロキシしたいApachehttpdがあります。
私はこれを見ます: http ://tomcat.apache.org/connectors-doc-archive/jk2/proxy.html
しかし、それは1つのTomcatサーバーのみです。8080で実行されているTomcatに加えて、8081で実行されているサーバーが1つある場合はどうなりますか?
2つの異なるTomcatサーバーにプロキシしたいApachehttpdがあります。
私はこれを見ます: http ://tomcat.apache.org/connectors-doc-archive/jk2/proxy.html
しかし、それは1つのTomcatサーバーのみです。8080で実行されているTomcatに加えて、8081で実行されているサーバーが1つある場合はどうなりますか?
mod_proxy_balancerを使用して負荷分散をセットアップする簡単な方法があります。バランサーを に配置するよりも、バランサーリストの下に tomcat サーバーをリストするだけProxyPass
です。
<Proxy balancer://mycluster>
BalancerMember http://tomcat1:8080/
BalancerMember http://tomcat2:8081/
</Proxy>
ProxyPass /test balancer://mycluster
Apache httpd には、任意の数のバックエンド Tomcat インスタンスにプロキシするための 2 つの標準オプションがあります。
mod_proxy_http
mod_proxy_ajp
前者は通信に HTTP プロトコルを使用し、後者はバックエンド サーバーのajp://
代わりにAJP プロトコルと で始まる URL を使用することを除いて、それらは互いに同じように構成されます。http://
どちらも同じ方法で負荷分散、フェイルオーバーなどを構成できます。/app1
別々の URL スペース (例-> Tomcat1 と-> Tomcat2)に別々のプロキシ設定を提供することで、完全に別々の Tomcat インスタンス (つまり、負荷分散なし: 別々のバックエンド) にプロキシ/app2
できます。または、2 つ (またはそれ以上) のバックエンド インスタンスを設定できます。ロードバランシングなどに。
具体的には、次の httpd 構成ディレクティブのドキュメントを参照してください。
<Proxy>
BalanceMember
ProxyPass
ProxyPassReverse
これらすべてのドキュメントは、次の場所にあります。
AJP プロトコルを使用する必要があり、より複雑な構成が必要な場合は、使用することもできますmod_jk
( not mod_jk2
、これは古い、死んで、放棄された、完全に無関係なプロジェクトです)。詳細については、Tomcat サイト ( http://tomcat.apache.org/connectors-doc/mod_jk
) を参照してください。
mod_jk
には根本的に異なる構成手順があり、より多くの AJP 固有のオプションがありますmod_proxy_ajp
。
元の投稿で言及した(古いドキュメントからの)(短い)ドキュメントは、mod_jk2
Apache httpdmod_proxy_ajp
とmod_proxy_balancer
モジュールを指しています(ただし、ドキュメントが書かれた時点で最先端だった不安定なhttpd 2.1を指しています)。あなたは正しい道を歩んでいました。読み続ける必要があったのです。ここで説明されているモジュールのいずれかを使用して、必要な数の Tomcat のバックエンド インスタンスに確実にプロキシできます。
両方の 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 をインストールしてください。しかし、確かに、それは仕事のための実績のあるツールなので、それに賭けることができます.