PerlbalのX-Reproxy-Urlで、ヘッダを渡すパッチ

Posted filed under ServerSide.

Photo by E Cashell  PerlbalのX-Reproxy-Urlを使おうと思ったのですが、Reproxy先のURLへヘッダを渡す方法が無かったので、ちょっとしたハックをしました。  X-Reproxy-Headersに渡したいヘッダをカンマ区切りで入力すると、そのヘッダをReproxy先にも渡します。  下記のようなリクエストをperlbalに返すと、 X-Reproxy-Url: http://example.com/ X-Reproxy-Header: Cookie,X-Version Cookie: ID=foobar X-Version: 1.0  Reproxy先には、下記のようなヘッダが渡されます。 Cookie: ID=foobar X-Version: 1.0  Perlは4止まりだったのですが、がんばってパッチを作ってみました。 perlbal-reproxy-header-060108.patch ホントは、プラグインとかにしたいんですが、どなたか手伝ってくれませんか? 追記 RailsConfで出ていた、WarBookがPerlbalを使ってるって言ってたなぁ。

Ubuntu / OSXにPerlbalをインストールする

Posted filed under ServerSide.

Photo by stebulus  nginxなども調査してみたのですが、Perlbalが一番細かくキャッシュコントロールできること、Perlで書かれているので改造がしやすいことから、これを使う方向で進めてみることにしました。  まずは、S3にreproxyする場合に、認証用のヘッダを付けるようにしないとな。  ときどき死ぬとの情報もあるのですが、これはプロセス監視と複数起動することで対処することにします。  OSXや、UbuntuにPerlbalのパッケージが無かったので、インストールする方法をまとめておきます。  パフォーマンスはまだ計測していないけど、WassrもPerlbalを使ってるんですね。

[メモ] AmazonS3とEC2を使う時にはX-REPROXY-URL

Posted filed under Ruby on Rails, ServerSide.

 S3+EC2を使っていると、S3に保存したムービーや画像と言った大きなデータを、クライアントに返したい場合があります。 そのときにリバースプロキシを使う方法もあるけど、権限やユーザによって振り分けたい場合などは、単純なリバースプロキシではうまくいきません。  Rails側でNet::HTTPなどを使ってS3からデータを取ってくる方法もあるのですが、それだとパフォーマンスが悪すぎです。  負荷分散することを考えると、これはApacheモジュールか、リバースプロキシ側でやって欲しい作業です。自分で書こうと思ったけど、調べてみたらやっぱり同じようなのがありました。  リバースプロキシなどの中には、X-REPROXY-URLというヘッダをサポートしているものがあり、これを戻すとリバースプロキシが代わりにこのURLにアクセスしてデータを返してくれます。  Perlbalが始めにサポートしたらしいですが、lightlyやapacheもパッチが出ているようです。Perlbalはリバースプロキシとしても、性能が高いらしいので、これを評価してみようと思います。 メモリンク X-SendFile, X-REPROXY-FILE, X-REPROXY-URLを試してみる – Yet Another Hackadelic X-REPROXY-CACHE-CLEAR もあわせて使いたい人向けショート BK