Architectural heads-up/call for comments

Cosimo Streppone cosimo at
Thu Jan 7 10:18:14 CET 2010

On 06 january 2010 12:46:07, Poul-Henning Kamp <phk at> wrote:

> [...] call for comments from the users of varnish [...]

> 1.  Kill the magic default VCL.

It's great that you're asking feedback, thanks.

> You will no longer be able to just give Varnish a subset of the VCL
> instruction, ie. just a vcl_recv{} function

I understand and appreciate the motivation for this.
However, I must say I find it really easy to just have
a default behavior built-in.

In one of our deployments, we have a VCL consisting only
of a 5 lines vcl_recv(). Very simple and effective.

OTOH, it's true that you have to know what you're doing.
I would suggest to have several presets files, sort of what
mysql does with my-huge.cnf, etc...

Say, something like:

    - default.vcl        (the one with the built-in behavior)
    - simple-static.vcl  (for mostly static web servers, strip  
    - webapp-simple.vcl  (static + dynamic with 1 backend)
    - webapp-large.vcl   (like simple with a cluster of backends, director,  
    - ...

> The current behaviour does not work the way it was intended and
> confuses a lot of people, because they do not see the full picture.

Yes, it confused me too when I wanted to just turn the key
and get the thing going. Then you realize you have to
stop and rftm :)

> Back in the ancient mists of time, spirits were brave, stakes were
> high and we thought it would be possible for users to use VCL
> "libraries" and have a VCL file that looked like:
> 	include "typo3.vcl";
> 	include "anti_dos.vcl";
> 	include "anti_malware.vcl";
> 	...
> Obviously, that does not work, because of the ordering necessary
> of the checks..

Please, can you explain?

> 2.  Client identity

That would be great, even if I/we (prefer to)
have completely stateless backends, so it doesn't matter
on which backend you end up.

> 3. Synth replies (and vcl_error{} ?)

We currently don't let varnish reply directly to clients,
so we don't use this feature for now.

> 4. VCL conversions
> if (ip(req.http.x-forwarded-for, ~ acl_badguys)) {

I never had the need for this, but I understand
it's a good feature to prevent problems.

> Thanks for listening, now it's your turn to tell me

I hope it's useful feedback,
we're just starting with varnish.


More information about the varnish-misc mailing list