OK、この質問は私が知っている間ずっと尋ねられます:「Apacheを介してTomcatを接続する最良の方法は何ですか」。しかし、私はまだ決定的な答えを見つけていませんし、おそらくそれがないかもしれませんが、私は実行可能な高性能のセットアップを探しています。私が読んだドキュメントの多くは、2005年以前の記事を参照しています。 2010年のソリューションを探しています:)
Mod_rewriteを使用してApacheからTomcatへのすべてのトラフィックを以下を使用して書き換える現在のセットアップ(私が作成したものではありません)があります。
RewriteRule ^(.*) ajp://localhost:8009$1 [P,L]
TomcatのROOTアプリとして1つのアプリがあります。だから今私はmod_rewriteを使ってajp経由でリクエストを送信しています(これはmod_proxy_ajpとは異なりますか??)。 これが満足のいくものではない理由はありますか?
また、Apacheに静的アセットを提供させたいと思っています Tomcatの負荷を軽減するため、mod_expires/deflateなどを簡単に使用できます...これを行う方法がわかりません。
Webroot(WEB-INFと同じディレクトリ)に「assets」(つまり、js/css)フォルダと「images」フォルダがあるので、/images
と/assets
で「しないでください」という何らかの一致が必要だと思います。これをTomcatに渡してください」??
現在の設定に関するヘルプ/提案/コメントは大歓迎です。
ところで私が使用している:
Apache2-2.2.9-10
Tomcat-5.5.29
リライターのPはプロキシです
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !^(images|assets)
RewriteRule ^(.*) ajp://localhost:8009$1 [P,L]
パスの下にあるもの http:// localhost/static / *がApacheから提供されるようにしたい場合は、ルールの前にRewriteCondを設定して、持っていないものをすべてキャプチャできます。 URIを/ static/*として、AJP経由でTomcatに転送します。基本的に、/ static/*はそのままにして、DocRootやエイリアスなどから提供されます。
例えば:
RewriteCond %{REQUEST_URI} !\/static\/.* [NC]
RewriteRule ^(.*) ajp://localhost:8009$1 [P,L]