mod_mrubyについて(1)

こんばんは。

さて、mod_mrubyについて第1回目です。
現在までに僕がmod_mrubyの実装でお手伝いしたところを徐々にまとめたいと思います。

まず、Apacheにmrubyを組み込もうと思ったのかについてはmatsumoto_r氏のブログに詳しく記述されておりますのでそちらを参照いただきたい。僕はこの思想に賛同し、協力しています。
なぜApacheにmrubyを組み込もうと思ったか2012年6月18日現在でversionは0.2.1となっています。

mod_mrubyにはApache内で処理をしていく様々なフェーズにおいて、mrubyスクリプトからrequest_rec構造体と呼ばれるリクエストに応答するための値を参照、変更できるようになっています。request_rec構造体については次の回以降でまとめたいと思います。

ApacheがHTTPのリクエストを受けてからレスポンスを返すまでに様々なフェーズが設けられています。あらゆるタイミングで処理を差し込む仕組みのことを『フック(hook)』するといいます。フックさせることのできる箇所はあらかじめ決まっていて、処理は関数の形で実装されています。関数として与えるので、あらかじめ引数も戻り値も決まっています。

2012年6月18日現在、mod_mrubyに実装されているフック関数は以下の表の通りとなっています。
参考1:Apache hook関数
参考2:[補足記事]Apache 2.0 の hook 一覧(apache module 開発事初め その3-3)

分類 hook関数名
設定初期化系 ap_hook_post_config()
プロセス初期化系 ap_hook_child_init()
リクエスト系 ap_hook_post_read_request()
ap_hook_quick_handler()
ap_hook_translate_name()
ap_hook_map_to_storage()
ap_hook_access_checker()
ap_hook_check_user_id()
ap_hook_auth_checker()
ap_hook_fixups()
ap_hook_insert_filter()
ap_hook_handler()
ap_hook_log_transaction()

何か疑問などありましたらコメントで残してもらえるとありがたいです。
次回はhook関数の動作を見ていきたいと思います。

  1. コメントはまだありません。

  1. トラックバックはまだありません。