2006/11/14

RewriteLogをとろう

WEBアプリケーションのAPサーバは、フロントコントローラー方式が一般的なので、基本的にどんなアクセスが来てもmod_rewriteでディスパチャに渡されて、そこからアドレスディスパッチしてアドレスに対応した処理を実行する。
ディスパッチャに渡されないアドレスの例外として、cssやjsや画像等の静的なファイルはそのままそのファイルに通す。具体的にはRewriteCondで、ファイルが存在していたらそれを返すという設定で運用していた。
もちろん何処でどうアドレスを生成したのか、存在し無いファイルにアクセスしようとするボットは多いし、多分人間も居る。ただ、なんにしろディスパッチャでうけて、処理が無い物は404を返すので特に問題は無いと思っていた。そして、実際その通りなんだけど。favicon.icoを忘れていた。
favicon.icoはアドレスバーのアイコンやブックマーク(お気に入り)したとき等に表示されるアイコンなんだけど、これのアクセス頻度が馬鹿にならないぐらいある。
これも、結局はアプリ側で404を返しておけば問題は無いのだけど、そんな事の為にAPサーバにアクセスさせるのは無駄なのでrewrite_ruleでルーティングしないようにしておこう。今まで全然気づかずにアクセスさせまくってたよ。
..icoファイルをルーティングしない様にしても良いけど、今は.を使ったアドレスが必要ないし、これからも可能な限りそうでありたいので、拡張子のついた物はルーティングしない様にしています。
まぁ、この際favicon用意するってのもアリだよね。
あと、RewriteLogは本番環境でも、ある程度(今はRewriteLogLevel 2にしてみた)とっておいた方が良いね。

irb
最近irbを使ってなかったんだけど、ちと計算機が欲しいとおもって立ち上げたら、ダインミックリンクエラー。ライブラリがみつからないというので見てみたら、確かに要求ライブラリは無かった。バージョン違い(新版)があったのでそちらにリンクしといたら動いた。深追いはしないけどportの問題かな。
たぶんrubyを1.8.5にアップデートした時にリンクが切れたと思うんだけど、今気づくってどうなのよ。挙動確認もruby通す様になってきて、irbは四則計算ぐらいにしか使わなくなったからな。

[java] Duke
SunがJavaのマスコットDukeも“オープンソース化”,こちらはBSDライセンス
これはDuke好きの私にはたまりませんなー。