Configure Varnish
From Fabelier
Here is a little example about configuring Varnish in the fabelier's dev server to host a project. If any question, ask Julien (julien at palard point fr)
- First, edit the file /etc/varnish/default.vcl (If you use emacs, M-x c-mode and enjoy syntax highlighting as vcl ils inspired by c)
- Add a backend for your project, here it's "YourStuff" :
# YourName : YourComment...
backend YourStuff
{
.host = "127.0.0.1";
.port = "8090";
}
- In the `sub vcl_recv`, add a condition that match your url (checking for req.url) / host (checking for req.http.host) / whatever. If you *haven't* query yet (on your browser or other..) your future sub domain of "mystuff".dev.fabelier.org, you can attribute it by yourself like that :
if (req.http.host == "yourstuff.dev.fabelier.org")
{
set req.backend = YourStuff;
}
- If necessary, fine tune the TTL for your responses, default is 10mn :
if (req.backend == YourStuff)
{
set beresp.ttl = 300s;
}
- Reload varnish (never restart, in case there is a bug in your configuration file !) :
$ /etc/init.d/varnish reload Reloading HTTP accelerator: varnishdCommand failed with error code 106
- Damned, there is a bug in varnish's default.vcl, that's nice there is a command to check it:
$ /usr/sbin/varnishd -Cf /etc/varnish/default.vcl
Message from VCC-compiler:
Syntax error at
(input Line 29 Pos 19)
if (req.http.host == yourstuff.dev.fabelier.org")
------------------#------------------
Fix it, reload, enjoy !
File too big to be handled by Varnish ? a quick fix is to add :
if (req.url ~ "\.zip$")
{
return (pipe);
}