Apacheとtomcat連携
参考にしたサイト
Apache-tomcat連携の王道というか、連携方法のサイト
http://trasis.jp/blog/lab/2008/08/apache-tomcat%E3%81%A7%E8%B2%A0%E8%8D%B7%E5%88%86%E6%95%A3.html
apache, tomcatで負荷分散
http://unixlife.jp/java/mod-proxy-ajp.html
ApacheとTomcatの連携
各プロパティ(パラメータの説明が記載されている)
http://d.hatena.ne.jp/pomo123/20081107/1226048548
セッション管理はなし
http://homepage1.nifty.com/y-osumi/works/code/tomcat_cluster/
http://m97087yh.seesaa.net/article/109049513.html
各パラメータの詳細や説明やサンプル
-
- ProxyPassMatch
http://d.hatena.ne.jp/rx7/20071220/p1ProxyPassMatch /(app|test)/(.*) http://192.168.1.100:3000/$1/$2
mod_proxy_httpだけど、ajpの場合でも利用できそう
http://d.hatena.ne.jp/Ochotona/20080605/1212664140
例えば、/admin配下の〜.doだけajpに渡したい場合はこれだけ
ProxyPassMatch ^/admin/.*\.do ajp://localhost:8009/
http://yamashiro0110.hatenadiary.jp/entry/2014/03/11/020016
正規表現にマッチしたURLに対してProxyする設定
test1/test1.htmlの場合、test2/test1.htmlにproxyするという意味
ProxyPassMatch ^/html/test1/test([0-9]{1})\.html http://192.168.0.11:8888//html/test2/test$1.html設定に引数を渡さないように記載した場合
ProxyPassMatch ^/html/test1/test([0-9]{1})\.html http://192.168.0.11:8888//html/test2/test1.html
URLのパスが全部渡される。
http://blog.riywo.com/2011/04/29/114012
mod_proxyで最後の砦を作る時mod_rewriteの場合が記載されているけど、ProxyPassMatchとしても参考にできる
RewriteRule ^/(.*)$ http://backend/$1 [QSA,L,P]
RewriteRule (?s)^/(.*)$ http://backend/$1 [QSA,L,P]
-
- mod_proxy_balancer
http://www.sssg.org/blogs/naoya/archives/976
負荷分散機能を使った場合のバランシングのさせかた(セッションなし、ラウンドロビン)
http://wall-climb.com/2009/07/13/mod_proxy_balancer%E3%81%AE%E3%83%91%E3%83%A9%E3%83%A1%E3%83%BC%E3%82%BF%E6%A4%9C%E8%A8%8E/
mod_proxy_balancerのパラメータ検討
http://inokara.hateblo.jp/entry/2013/12/04/071312
failonstatus というのを使った場合
http://www.chikkun.com/und/document/java/balancer/apache_balancer.html
-
- ProxyPass ディレクティブ
http://httpd.apache.org/docs/2.2/mod/mod_proxy.html
本家
-
- ProxyPassMatch
ProxyPassMatchのポイントは、正規表現での
「()」1つ目が、$1で参照できる(引き継がれる)
「()」2つ目が、$2で参照できる(引き継がれる)
「()」3つ目が、$3で参照できる(引き継がれる)、以降同様^/context1([a-zA-Z0-9])/(.*) ajp://localhost:8009/context1$1/$2
のように、
最初の「(」英数字のいずれか1文字にマッチしたものは、$1で
次の「(」改行を除く任意の1文字 にマッチしたものは、$2で
http://serverfault.com/questions/534515/apache-load-balancing-proxy-bypass-not-working1 Answer
I'd use the ProxyPassMatch directive for better control:
ProxyPassMatch ^/assets/.*$ !
ProxyPassMatch ^/(.*)$ balancer://mycluster/$1 lbmethod=byrequests
ProxyPassReverse / balancer://mycluster
BalancerMember http://localhost:9292
BalancerMember http://192.168.1.2:9292
Because the directives are evaluated in the order in which they appear, you assets directory should not be proxied, while the rest of the URLs would use the balancer.
http://ossfan.net/memo/archives/2011/06/22085506.html
Apacheのmod_proxy_ajpで特定のURLにマッチした場合のみJBossへ処理を連携するhttp://ドメイン名/APP1/○○○.jsp○○○
http://ドメイン名/APP2/○○○.do○○○
http://ドメイン名/APP1/
http://ドメイン名/APP2/
でアクセスした場合に、JBossへ処理を連携する。
jpegファイルやgifファイルなどはJBossへ連携せずにApacheで処理する。この場合、 /etc/httpd/conf.d/proxy_ajp.conf ファイルに以下の行を追加する。
ProxyPassMatch ^/APP1/(.*\.(jsp|do).*)$ ajp://IPアドレス:8009/APP1/$1
ProxyPassMatch ^/APP2/(.*\.(jsp|do).*)$ ajp://IPアドレス:8109/APP2/$1
ProxyPassMatch ^/APP1/$ ajp://172.17.83.212:8009/APP1/
ProxyPassMatch ^/APP2/$ ajp://172.17.83.212:8109/APP2/
http://keyamb.hatenablog.com/entry/20091119/1258602344
mod_proxy_ajpを使って、任意の拡張子のパスをTomcatに飛ばす
例えば、Struts2のアクション(URLが.actionで終わるもの)だけをTomcatで扱いたい場合は、以下のようにします。
conf/extra/httpd-proxy.confProxyPassMatch ^/([^\.]*\.action)$ ajp://localhost:8009/struts2-project/$1