1
<?xml version="1.0" encoding="utf-8"?>
2
<html xmlns="http://www.w3.org/1999/xhtml">
4
<title>Change log for Varnish 2.0</title>
5
<link rel="stylesheet" type="text/css" href="changes.css"/>
8
<h1>Change log for Varnish 2.0</h1>
9
<h2>Changes between 1.1.2 and 2.0</h2>
13
<p>Only look for sendfile on platforms where we know how to
14
use it, which is FreeBSD for now.</p>
17
<p>Make it possible to adjust the shared memory log size and
18
bump the size from 8MB to 80MB.</p>
21
<p>Fix up the handling of request bodies to better match
22
what RFC2616 mandates. This makes PUT, DELETE, OPTIONS and
23
TRACE work in addition to POST. </p>
26
<p>Change how backends are defined, to a constant structural
28
http://varnish.projects.linpro.no/wiki/VclSyntaxChanges for the
32
<p>Add directors, which wrap backends. Currently, there's a
33
random director and a round-robin director.</p>
36
<p>Add "grace", which is for how long and object will be
37
served, even after it has expired. To use this, both the
38
object's and the request's <span class="code">grace</span> parameter need
42
<p>Manual pages have been updated for new VCL syntax and
46
<p>Man pages and other docs have been updated.</p>
49
<p>The shared memory log file is now locked in memory, so it
50
should not be paged out to disk.</p>
53
<p>We now handle Vary correctly, as well as Expect.</p>
56
<p>ESI include support is implemented.</p>
59
<p>Make it possible to limit how much memory the malloc uses.</p>
62
<p>Solaris is now supported.</p>
65
<p>There is now a <span class="code">regsuball</span> function, which
66
works like <span class="code">regsub</span> except it replaces all
67
occurences of the regex, not just the first.</p>
70
<p>Backend and director declarations can have
71
a <span class="code">.connect_timeout</span> parameter, which tells us how
72
long to wait for a successful connection.</p>
75
<p>It is now possible to select the acceptor to use by
76
changing the <span class="code">acceptor</span> parameter.</p>
79
<p>Backends can have probes associated with them, which can
80
be checked with <span class="code">req.backend.health</span> in VCL as well as
81
being handled by directors which do load-balancing.</p>
84
<p>Support larger-than-2GB files also on 32 bit hosts.
85
Please note that this does not mean we can support caches
86
bigger than 2GB, it just means logfiles and similar can be
90
<p>In some cases, we would remove the wrong header when we
91
were stripping Content-Transfer-Encoding headers from a
92
request. This has been fixed.</p>
95
<p>Backends can have a <span class="code">.max_connections</span>
96
associated with them.</p>
99
<p>On Linux, we need to set the dumpable bit on the child if
100
we want core dumps. Make sure it's set.</p>
103
<p>Doing <span class="code">purge.hash()</span> with an empty string
104
would cause us to dump core. Fixed so we don't do that any
108
<p>We ran into a problem with glibc's malloc on Linux where
109
it seemed like it failed to ever give memory back to the OS,
110
causing the system to swap. We have now switched to jemalloc
111
which appears not to have this problem.</p>
114
<p><span class="code">max_restarts</span> was never checked, so we always
115
ended up running out of workspace. Now, <span class="code">vcl_error</span>
116
is called when we reach <span class="code">max_restarts</span>.</p>
122
<p><span class="code">varnishtest</span> is a tool to do correctness tests
123
of varnishd. The test suite is run by using <span class="code">make
130
<p>We now set the field widths dynamically based on the size
131
of the terminal and the name of the longest field.</p>
137
<p><span class="code">varnishstat -1</span> now displays the uptime too.</p>
143
<p><span class="code">varnishncsa</span> now does fflush after each
144
write. This makes <span class="code">tail -f</span> work correctly, as well
145
as avoiding broken lines in the log file.</p>
148
<p>It is possible to get <span class="code">varnishncsa</span> to output
149
the <span class="code">X-Forwarded-For</span> instead of the client IP by
150
passing <span class="code">-f</span> to it.</p>
153
<h3>Build system</h3>
156
<p>Various sanity checks have been added
157
to <span class="code">configure</span>, it now complains about no ncurses or
158
if SO_RCVTIMEO or SO_SNDTIMEO are non-functional. It also
159
aborts if there's no working acceptor mechanism </p>
162
<p>The C compiler invocation is decided by the configure
163
script and can now be overridden by passing <span class="code">VCC_CC</span>
164
when running configure.</p>