Question about purge_url purge_hash

2008-07-28 Thread Phuwadon Danrahan
Hi all,

I configured the Varnish 1.1.2-r2635 to allow purging from backoffice
web servers. The first version of this concept is very easy, just send
PURGE request for specific URL to Varnish servers.

Configuraiton,

VCL_RECV
 if (req.request == PURGE) {
if (client.ip ~ backoffice) {
  lookup;
}
 }

VCL_HIT
if (req.request == PURGE) {
set obj.ttl = 0s;
error 200 Purged;
}

This above configuration is working fine but the application owner would
like to purge some URL that contains multiple paging in only one PURGE
request. The example is

http://myhost.com/path/to/index.php?id=123page=1
http://myhost.com/path/to/index.php?id=123page=2
http://myhost.com/path/to/index.php?id=123page=3

Sometimes, the maximum page can be more than 1000. So, we think about
purge_url(req.http) but it always return MISS when we input the URL with
REGEX. 

What did we test the VCL configuration
1. use WFETCH to get content from varnish with the following request
headers,
GET /path/to/file.gif HTTP/1.0\r\n
Host: myhost.com\r\n
Accept-Encoding: gzip\r\n
2. use WFETCH to purge content from varnish with the following request
headers,
PURGE /path/to/file.gif HTTP/1.0\r\n
Host: myhost.com\r\n
Accept-Encoding: gzip\r\n

  We can purged the object in this step

3. We tried,
PURGE \.gif$ HTTP/1.0\r\n
Host: myhost.com\r\n
Accept-Encoding: gzip\r\n
  But this one can not be purged which we require this kind of purging
style (allow REGEX)

Could anyone provide the valid use of purge_url or purge_hash in both
vcl_recv and vcl_hit? and how can we input the REGEX url into purging
request? 

Thank you.
Phuwadon D.
___
varnish-misc mailing list
varnish-misc@projects.linpro.no
http://projects.linpro.no/mailman/listinfo/varnish-misc


RE: PURGE http method and compression.

2008-04-28 Thread Phuwadon Danrahan
In my environment, we have the vcl_hash that uses Accept-Encoding as
one of hash keys. 

sub vcl_hash {
set req.hash += req.url;
set req.hash += req.http.host;
if (req.http.Accept-Encoding ~ gzip) {
   set req.hash += gzip;
}
else if (req.http.Accept-Encoding ~ deflate) {
set req.hash += deflate;
}
hash;
}

So, Varnish may have 3 hash versions of the same url. First is just for
no gzip/deflate client. Second is for gzip client. And third is for
deflate client.

If we need to purge the URL from backoffice (web server), we just purge
3 times for each URL by using CURL.

-Original Message-
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of
Poul-Henning Kamp
Sent: Monday, April 28, 2008 6:21 PM
To: Wichert Akkerman
Cc: varnish-misc@projects.linpro.no
Subject: Re: PURGE http method and compression. 

In message [EMAIL PROTECTED], Wichert Akkerman writes:

That's interesting. So the default VCL for HTTP PURGE requests will not

purge all variants? How can a backend know which variants there are so
it 
can purge all of them?

It probably can't, so if your backend returns Vary: headers, you
should
use the url.purge or hash.purge method.

-- 
Poul-Henning Kamp   | UNIX since Zilog Zeus 3.20
[EMAIL PROTECTED] | TCP/IP since RFC 956
FreeBSD committer   | BSD since 4.3-tahoe
Never attribute to malice what can adequately be explained by
incompetence.
___
varnish-misc mailing list
varnish-misc@projects.linpro.no
http://projects.linpro.no/mailman/listinfo/varnish-misc
___
varnish-misc mailing list
varnish-misc@projects.linpro.no
http://projects.linpro.no/mailman/listinfo/varnish-misc


RE: Access Log

2008-03-28 Thread Phuwadon Danrahan
Hi,

I have some questions about varnishncsa. I would like to split access
log via varnishncsa by Host header because the backend uses naming
virtual hosts. 

I tried varnishncsa -i RxHeader -I 'Host: mydomain' but nothing
display on screen. Even varnishncsa -I RxHeader can not show any log.
Note, I tried varnishlog -I RxHeader -I 'Host: mydomain' and it works.

Do you have any example on howto log multiple domains by using
varnishncsa?

Thank you.
Phuwadon D.

-Original Message-
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Florian
Engelhardt
Sent: Friday, March 28, 2008 4:58 PM
To: varnish-misc@projects.linpro.no
Subject: Re: Access Log

On Fri, 28 Mar 2008 10:50:45 +0100
Florian Engelhardt [EMAIL PROTECTED] wrote:

 Hello,
 
 i have a question about access loggin in varnish. On the old
 environment we had just a plain lighttpd on port 80 an its logfile.
 When caching via varnish in the new environment, most of the
 requests will not hit lighttpd and will therefor not show up in its
 access.log file. Is there any way to create a access.log file similar
 to the one that lighty creates, via varnishlog?
 Or do i have to log everything via varnishlog and create that
 access.log maybe via a cronjob?

Shame on me, just ignore my mail, i have found it.
varnishncsa makes my day ;-)

Kind regards

Flo
___
varnish-misc mailing list
varnish-misc@projects.linpro.no
http://projects.linpro.no/mailman/listinfo/varnish-misc
___
varnish-misc mailing list
varnish-misc@projects.linpro.no
http://projects.linpro.no/mailman/listinfo/varnish-misc