|
/
Zope
/
Apsis
/
Pound Mailing List
/
Archive
/
2007
/
2007-05
/
X-Reproxy-Url patch for Pound
[
Re: [Pound Mailing List] HTTP Method based ... ]
[
XMLRPC Problems With Pound 2.3-1 / ... ]
X-Reproxy-Url patch for Pound
Nathan Schmidt <nathan(at)pbwiki.com> |
2007-05-02 22:33:14 |
[ FULL ]
|
Hi Robert,
We use Pound here at PBwiki for our frontend traffic directing, SSL,
and rewrite. Since we use MogileFS as our backing store it could be
useful for us to have support for Perlbal's reproxy feature, which
allows the client to specify an internal url (never shown to end
users) which houses the document body. In this case the application
layer would handle permissions, quota, and logging then feed the
header "X-Reproxy-Url: http://10.0.0.31/
dev3/0/023/683/0023683057.fid" and an empty body back to Pound. Pound
then opens a new connection to 10.0.0.31, instead of the application
layer having to do that passthrough itself. This frees up Apache to
do other expensive application-level things instead of spoon-feeding
to modems across the planet.
The linked patch is more a proof-of-concept than production-grade
yet. I wanted to post it now to ask your thoughts about the method
and whether you'd consider adding this to the main codebase once it
is more mature (and configurable).
Thanks for making Pound, it's been a great help for us.
Regards,
-Nathan Schmidt / CTO, PBwiki
Patch hosted at: http://poundpatch.pbwiki.com/
|
|
|
Re: [Pound Mailing List] X-Reproxy-Url patch for Pound
Ted Dunning <tdunning(at)veoh.com> |
2007-05-02 23:04:04 |
[ FULL ]
|
So you are essentially implementing a special case redirect within pound
rather than within the browser or within the application?
The benefits would be greater application isolation via the abstraction
layer provided by pound as well as putatively higher throughput because you
are doing less proxying?
On 5/2/07 1:33 PM, "Nathan Schmidt" <nathan(at)pbwiki.com> wrote:
[...]
|
|
|
Re: [Pound Mailing List] X-Reproxy-Url patch for Pound
Nathan Schmidt <nathan(at)pbwiki.com> |
2007-05-02 23:49:40 |
[ FULL ]
|
That's correct.
We don't expose the 10.0.0.x address space or internal url to the
outside world since our user's files are stored in a sequential
integer (thus guessable) namespace. A real-world example we have
lately is a Flash game on a user's wiki which has become quite
popular in Sweden and Norway, so we have a lot of people accessing a
~2Mb file over a mix of fast and slow connections.
Right now that 2Mb of data goes from the file storage machines to the
appserver to the Pound proxy to the client. We'd rather free up
Apache to move on to the next interesting request (such as rendering
a wiki page or processing an edit) and let Pound take care of just
trickling out the static data.
We need the application layer to be involved for this otherwise
uninteresting static file because we have a great deal of non-public
user data which can only be served once the session/auth phase is
complete. We also allow users to make their data private or public at
arbitrary times, and so we can't do a great deal of upstream caching
of currently public data.
The reproxy idea is from Brad Fitzpatrick, who wrote MogileFS and
Perlbal.
http://www.usenix.org/events/lisa04/tech/talks/livejournal.pdf
(see
page 48)
We'd switch to Perlbal as the proxy role but Pound is otherwise
meeting our needs nicely and has ended up being quite fast on our
commodity hardware.
-n
On May 2, 2007, at 2:04 PM, Ted Dunning wrote:
[...][...][...]
|
|
|
Re: [Pound Mailing List] X-Reproxy-Url patch for Pound
Matt Mullenweg <m(at)mullenweg.com> |
2007-05-03 01:35:58 |
[ FULL ]
|
Nathan Schmidt wrote:[...]
We are in exactly the same boat. Thanks for putting this out there.[...]
|
|
|
|