Pegasus の内部処理
Pegasus の以下の順序で関連するファイルを参照し、名前空間や処理の内容を決定していきます。
/lib/namespace
httpd の起動直後は httpd を起動した名前空間の中にいる。これは通常 console の名前空間であり /lib/namespace で決定されている。
/sys/lib/httpd.conf
最初に /sys/lib/httpd.conf が参照される。
/sys/lib/mimetype
/sys/lib/mimetype が参照される。
/sys/lib/httpd.rewrite
クライアントからのリクエストは /sys/lib/httpd.rewrite に従って前処理される。
/lib/namespace.httpd
Pegasus はまず /lib/namespace.httpd に従い名前空間を再編する。$web が確定する。
$web/bin
$web/bin/386 と $web/bin/rc が /bin に bind される。
$web/etc/namespace_80
$web/etc/namespace_80 が存在すれば、さらに名前空間を再編する。ここで httpd のサービス空間(実ホスト・仮想ホスト・ユーザごとの名前空間)が確立する。
$web/etc/rewrite
$web/etc/rewrite によって要求されたファイルが確定する
$web/etc/allow
IP アドレスによるアクセス制限のチェック
$web/etc/passwd
パスワードに基づくアクセス制限のチェック
$web/etc/handler
実行ハンドラの参照
- ファイルの送信あるいは CGI の実行