Internal redirecition with dynamic backend (fetch 302 and return content)

Kristian Lyngstol kristian at redpill-linpro.com
Wed Apr 22 10:45:01 CEST 2009


On Wed, Apr 22, 2009 at 08:41:58AM +0200, Augustin Amann wrote:
> 1) RP do GET to the backend
> 2) backend reply a 302 to another server
> 3) RP do a GET to this new location
> 4) RP return content and store it.
> 
> Maybe i can use restart, like [1].
> I have no idea where the new location (gived by 302) is, this could be a 
> problem for a reverse proxy !
> So I think it's not realy the varnish way to deal with "dynamic 
> backend", but vcl is powerfull,
> and if I can define backend host and url on the fly, it could save my day !

In vcl_fetch:

if (obj.status == 302) {
	set req.url = obj.http.Location;
	restart;
}

The normal routines in vcl_recv will have to determine which backend to use
based on the new req.url. This will have to be pre-defined backends, so no
random redirects I'm afraid.

-- 
Kristian Lyngstøl
Redpill Linpro AS
Tlf: +47 21544179
Mob: +47 99014497
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 197 bytes
Desc: not available
URL: <https://www.varnish-cache.org/lists/pipermail/varnish-misc/attachments/20090422/5b2de88b/attachment-0003.pgp>


More information about the varnish-misc mailing list