開発環境には、Tomcatだけ入れてるのがふつうです。
でも、実行環境には、Apache + Tomcatだったりするのもふつうな話。
よって、開発している間は、コンテキスト配下のディレクトリに画像やスタイルシートのディレクトリを置きたくなります。
ところが、この状態では実行環境でせっかくApacheを用意していても、Tomcatが画像やスタイルシートを返すことになります。
静的コンテンツ(画像やスタイルシート)をTomcatが返すと、性能面でかなりの損害です(; ・`д・´)
かと言って、別のディレクトリに持っていくと、うまく動かなくなることも。。
そんなときは、Apacheの設定でどうにか逃げ切ることを考えてみましょうw
これを使えば、ApacheでもTomcatでも同じディレクトリを参照できることになり、ソース管理も簡単になります♪
Apacheのサンプル設定
ApacheからTomcatと連携する際の設定を見直します。
ふつうは、「このディレクトリならTomcatに連携する」のような形で書きますが、今回は逆です。
つまり、「このディレクトリならTomcatに連携しない」です。
1 2 3 4 5 6 7 8 9 10 11 12 13 | <VirtualHost *:80> ServerName www.example.com DocumentRoot /var/www/www.example.com/ <Directory "/var/www/www.example.com/"> Require all granted </Directory> ProxyRequests Off ProxyPass /favicon.ico ! ProxyPass /css ! ProxyPass /image ! ProxyPass /javascript ! ProxyPass / ajp://localhost:8009/ </VirtualHost> |
サンプルの解説
「!」をつけると、そのディレクトリは除外されます。
これを利用して、静的コンテンツを含むディレクトリでは、ApacheがTomcatに連携することなく、直接応答できることになります。
この例では、ありがちなディレクトリ(スタイルシート、画像、JavaScript)以下がアクセスされた場合、Tomcatに連携をしません。
また、ブラウザが勝手にアクセスするファビコン(favicon.ico)もついでに抜いてますw
開発環境で開発をしていたコンテキストパス配下を「/var/www/www.example.com/」にまるっとコピーすればできあがりです♪
「おなじディレクトリに静的コンテンツが混在してます・・・(TT)」な人は、ファイル名を直接指定しましょう♪