Fabelier

a * Lab to make things

User Tools

Site Tools


doc:varnish

Configure Varnish

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);
      }
doc/varnish.txt · Last modified: 2015/02/17 21:36 by gturri