Mailing List Archive

Checking http response codes
Hi,

I'm having av bit of keyboard trouble this morning, so forgive me if i post this question more than once, (too early still perhaps ;)

If I would like to do a check based on the response code from the backend how can I do this in VCL

I would like to be able to not cache 404's or to set the timeout to a very low number for 404's.

I have checked the vcl man page, but I'm unable to find which statement to use for the if clause

--

Thomas Westlund
Aftenposten AS, UNIX/nettverksavd.
Postboks 1, 0051 Oslo
Tlf: +47 98 20 30 33
Fax: +47 22 86 40 74
Checking http response codes [ In reply to ]
It's currently not possible to do this in VCL that I know of...I have come
up with a solution for a similar issue I had with varnish cache'ing 401
Unauthorized responses, thus denying legit authenticated users the proper
content because they are being serviced the 401. What I did is jumped into
the function cnt_fetch in bin/varnishd/cache_center.c here's a snippet...

--- /tmp/clean/varnish-1.0.4/bin/varnishd/cache_center.c 2007-05-20
10:38:16.000000000 -0700
+++ cache_center.c 2007-05-23 14:55:43.000000000 -0700
@@ -286,7 +286,8 @@
cnt_fetch(struct sess *sp)
{

-
+ struct vbe_conn *vc;
+
if (Fetch(sp)) {
sp->obj->cacheable = 0;
HSH_Unbusy(sp->obj);
@@ -300,6 +301,11 @@
RFC2616_cache_policy(sp, &sp->obj->http); /* XXX -> VCL */

VCL_fetch_method(sp);
+ vc = VBE_GetFd(sp);
+
+ if (http_GetStatus(vc->http) == 401)
+ sp->handling = VCL_RET_PASS;
+ VBE_ClosedFd(sp->wrk, vc, 0);

if (sp->handling == VCL_RET_ERROR)
INCOMPL();
@@ -353,6 +359,64 @@
sp->step = STP_DONE;
return (0);
}



On 5/30/07, Thomas Westlund <thomas.westlund at aftenposten.no> wrote:
>
> Hi,
>
> I'm having av bit of keyboard trouble this morning, so forgive me if i
> post this question more than once, (too early still perhaps ;)
>
> If I would like to do a check based on the response code from the backend
> how can I do this in VCL
>
> I would like to be able to not cache 404's or to set the timeout to a very
> low number for 404's.
>
> I have checked the vcl man page, but I'm unable to find which statement to
> use for the if clause
>
> --
>
> Thomas Westlund
> Aftenposten AS, UNIX/nettverksavd.
> Postboks 1, 0051 Oslo
> Tlf: +47 98 20 30 33
> Fax: +47 22 86 40 74
> _______________________________________________
> varnish-misc mailing list
> varnish-misc at projects.linpro.no
> http://projects.linpro.no/mailman/listinfo/varnish-misc
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://projects.linpro.no/pipermail/varnish-misc/attachments/20070530/7eaa44ca/attachment.htm