« パフォーマンスとスケーラビリティのためのデータベースアーキテクチャ (BPStudy#25発表資料) | Main | Uploading an autotools-based distribution onto CPAN »

October 05, 2009

Apache で X-Reproxy-URL ヘッダを使えるようにするモジュール mod_reproxy を書いた

ウェブアプリケーションにおいて、認証がかかっている画像や大きなファイルを配信する場合には、Perlbal 等でサポートされている X-Reproxy-URL ヘッダが有効なことが知られていて、その理由としては、

  • (メモリを大食いする) アプリケーションサーバのプロセスを転送終了まで占有しない
  • HTTP ベースの分散ファイルシステムとリバースプロキシが直接交信するので、ネットワーク負荷が低い

といった点が挙げられます。「でも、Apache は X-Reproxy-URL ヘッダをサポートしてないんだよねー」という話が、先日の YAPC::Asia 2009 においても話題になっていました[要出典]。回避策としては、ワンタイムURLのような手法もあるのですが、セキュリティな懸念もあります。

なんとかしたいなと思っていたのですが、気が向いたので、Apache に X-Reproxy-URL ヘッダ対応機能を追加するモジュール mod_reproxy を書いてみました。Github に置いてあります。

kazuho's mod_reproxy at master - GitHub

使い方は簡単。ダウンロードして、apxs を使って、コンパイル&インストールを行います。

# apxs -i -a -c -Wc,-Wall -Wc,-g -Wc,-O2 -lcurl mod_reproxy.c

その後、Apache の設定ファイルに

Reproxy On

と追記すれば、その追記した範囲において、X-Reproxy-URL ヘッダによる内部リダイレクトが有効になります。

それだけです。特に説明することもないのですが、状況によっては便利に使えるかと思います。

参考: lighttpd の X-Sendfile を使えるApacheモジュール - spiritlooseのはてなダイアリー

TrackBack

TrackBack URL for this entry:
http://bb.lekumo.jp/t/trackback/404050/21854289

Listed below are links to weblogs that reference Apache で X-Reproxy-URL ヘッダを使えるようにするモジュール mod_reproxy を書いた:

» OSXのApacheにmod_reproxyをインストールする from masuidrive on rails
OSXのApacheにKazuho@Cybozu Labsさんのmod_reproxyをインストールする方法。 sudo apxs -i -a -c -Wc,-Wall -Wc,-g -Wc,-O2 -Wc,"-arch x86_64 -arch i386 -arch ppc" -Wl,"-arch x86_64 -arch i386 -arch ppc" -lcurl mod_reproxy.c sudo echo "Reproxy On" > /etc/apache2/ot... [Read More]

Comments

Post a comment