apacheとnginxでX-Reproxyを使う

lighttpd でも使えるらしいんですが、個人的に使ってないので割愛


X-Reproxy-URLはPerlbal + MogileFSなどでファイル配信する場合によく使う、とは聞いていたのですが、X-Reproxyヘッダを解釈できるのはperlbalだけだと思ってました。

でちょろっとぐぐったら既に他のhttpdでも対応しているようで。

apache

kazuho 先生がお作りになったmod_reproxyモジュールを使う。

nginx


nginx単体でreproxyできる。素晴らしい。ただ、ちょっと設定が必要で、X-Reproxy-URLを返すbackendのサーバ(trackerなど) はX-Reproxy-URLだけでなく、X-Accel-Redirectでnginxが内部的に使うURLも返さないとダメらしい。
(上の例だとX-Accel-Redirect: /reproxy)

そしてnginx.conf でlocation /reproxy の中で設定する。reproxy時だけに使う設定になるので、internal と設定しているのはそのため。(nginxサーバにhttp://example.com/reproxy/ でアクセスしても404 not foundになる)