Apacheモジュールの開発

Apacheの本を衝動買い。読んだ感想:Apacheモジュールの開発は、サーブレット開発と大して変わらない。これまで避けていたのだが、実は簡単かも。

Apacheモジュール プログラミングガイド (Advanced Server‐side programmingシリーズ)

Apacheモジュール プログラミングガイド (Advanced Server‐side programmingシリーズ)

ちなみに、11/4の日記の内容少し間違い。http上にsshを使うためには、RFCエイプリルフールネタを使わないといけないと書いたが、それは、あくまで、通常のhttpサーバを使う場合のことだった。httptunnelのように、独自のhttpサーバを使う場合は、そうとは限らないはず。というわけで、自分の環境で、httptunnelが動かないのは、ソフトウェアのバグ(どこかに、httptunnelはバグがあると書かれていたのを見たことがあるような)か、Webプロキシが厳しいチェックを行っているかのどちらかのようだ。

ちなみに、自分で独自のhttpサーバを立てなければならないことは、httptunnelの欠点になりうる。すでにhttpサーバが立っているところでは使えない。

この問題は、Apacheのモジュールとして、sshトンネル用の仕組みを入れるということで回避できそうだ。ちなみに、これを単なるサーブレットで実現するのは、恐らく無理。ずっと昔、サーブレット上で双方向通信ができるかどうか(クライアントからの一回のPOSTが完了しないうちに、サーバがクライアントに返事を出すことで、双方向通信を実現する)の実験をしたことがある。そのときの結果は、Tomcatサーブレットではうまくいくのだが、ApacheTomcatサーブレットではうまくいかない、というものだった。どうやら、Apacheが、POSTをすべて読み込んでから、サーブレットコンテナに処理を渡す、という仕組みになっていたっぽい。