Hi,

Good write-up. But do you really need to make Joomla send special headers to 
Varnish, though? If a cookie is present in the client request, Varnish will 
automatically pass the request to the backend (unless you've tinkered in 
vcl_recv). Like this:


1.       req index.html, no cookies present

2.       Varnish: hit, strip set-cookie

3.       req news.html, no cookies present

4.       Varnish: hit, strip set-cookie

5.       req login.html, no cookies present

6.       Varnish: pass, allow set-cookie

7.       req index.html, cookie present

8.       Varnish: pass, cookie present

9.       req news.html, cookie present

10.   Varnish: pass, cookie present

As you see, once users log in, everything gets passed. Or piped, if you prefer, 
but pass should be your first choice.


Lars

From: [email protected] 
[mailto:[email protected]] On Behalf Of Kevin
Sent: Tuesday, August 09, 2011 12:13 AM
To: [email protected]
Subject: RE: neverending saga of varnish + joomla

Hey there,

I thought I’d send a note that I have finally gotten Varnish to work with 
Joomla. I wanted to say thanks to everyone on this list that has helped me 
throughout the last little while until I finally got it working.

I ended up modifying the joomla code to send an additional HTTP header to 
identify if the session was logged in or not, as well , I heeded the advice 
here and stripped all cookies except for the login page, among a few other 
things.

I detailed my experiences in my blog , if anyone is interested. I tried to be 
as detailed as possible :

http://blog.stardothosting.com/2011/08/08/varnish-caching-with-joomla/

Thanks!


From: Mitch Pirtle [mailto:[email protected]]
Sent: Monday, August 08, 2011 3:29 AM
To: Kevin
Cc: <[email protected]>
Subject: Re: neverending saga of varnish + joomla

On 07/ago/2011, at 22:42, "Kevin" 
<[email protected]<mailto:[email protected]>> wrote:

The problem is varnish is having a very very difficult time knowing when to 
pipe or pass the traffic to the backend webserver if a logged in session 
happens. It seems that unless you patch joomla to do its own internal checks 
and determine if a user is anonymous or not, and send a custom http header that 
varnish can read, there is no other real way to make varnish work with joomla.
Hi Kevin!

You can accomplish this by writing a Joomla plugin that does these things.
There are example plugins in the Joomla wiki (I'm loitering outside and don't 
have access right now, sorry!) and I believe there is a simple plugin example 
provided in the 1.5 distribution.

Essentially think of Joomla plugins as database triggers and stored procedures. 
When a specific event fires in the execution stack, any plugins for that event 
are fired as well.

Hope this helps,

-- Mitch
_______________________________________________
varnish-misc mailing list
[email protected]
https://www.varnish-cache.org/lists/mailman/listinfo/varnish-misc

Reply via email to