wiki:mod_rewriteの使い方(その1)

戻る

apacheとtomcatの連携設定では、http://ServerIP/hogeへのアクセスがあった場合に 画像の取得要求をtomcatへ送信しています。

現状では、tomcat配下で管理する画像だとか? CSSなどへの要求もtomcat側へ送信されるため 本来は、apache側で処理した方が良い処理をtomcat側で実施しております。

そこで、画像データと CSSに関して、apache側で要求を横取りできないか? できれば、その処理の分はtomcatの処理が軽くなります。

その仕組みは、apacheのmod_rewriteを使用します。

モジュールの確認

apache2.0の場合

# /usr/local/apache2/bin/httpd -l
で、「mod_so.c」 が表示される事を確認。

apache2.2の場合

# /usr/local/apache2/bin/httpd -M
で、「so_module (static)」 が表示される事を確認する。 

モジュールを準備する

apache2.2の場合

cd /usr/local/httpd-2.2.x/modules/mappers/

# コンパイル
/usr/local/apache2/bin/apxs -c mod_rewrite.c

# インストール
/usr/local/apache2/bin/apxs -i -a -n rewrite mod_rewrite.la

定義ファイルの修正

# view /usr/local/apache2/conf/httpd.conf

以下の行が追加されている事を確認。
なければ追加。

LoadModule rewrite_module modules/mod_rewrite.so

<IfModule mod_rewrite.c>
  RewriteEngine   On
  RewriteLog "/tmp/rewrite_log"
  RewriteLogLevel 0
  RewriteRule ^/Hoge/azurite/images/(.*)$ /images/azurite/images/$1 [L]
  RewriteRule ^/Hoge/bluelace/images/(.*)$ /images/bluelace/images/$1 [L]
  RewriteRule ^/Hoge/themes/(.*)$ /css/$1 [L]
  RewriteRule ^/Hoge/hoge/scripts/(.*)$ /scripts/$1 [L]

</IfModule>

再起動

/usr/local/apache2/bin/apachectl restart
/usr/local/apache2/bin/apachectl -k graceful <---- 利用者がいる場合の設定再読み込み

設定確認

# /usr/local/apache2/bin/httpd -M
Loaded Modules:
core_module (static)
…
…
userdir_module (static)
alias_module (static)
so_module (static)
php4_module (shared)
rewrite_module (shared) ←組み込まれた!
Syntax OK
Last modified 2 years ago Last modified on Nov 7, 2016, 1:48:53 PM