Commit eeec0e50 authored by Dag Erling Smørgrav's avatar Dag Erling Smørgrav

Change log for 1.1.


git-svn-id: http://www.varnish-cache.org/svn/trunk/varnish-cache@1654 d4fa192b-c00b-0410-8231-f00ffab90ce4
parent 1ca293b8
# $Id$ # $Id$
CHANGELOGS = changes-1.0.4.html CHANGELOGS = changes-1.0.4.html changes-1.1.html
EXTRA_DIST = ${CHANGELOGS} EXTRA_DIST = ${CHANGELOGS}
......
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE group [
<!ENTITY mdash "&#8212;">
]>
<!-- $Id$ -->
<group from="1.0.4" to="1.1">
<subsystem>
<name>varnishd</name>
<change type="enh" ref="1388">
<para>Readability of the C source code generated from VCL code
has been improved.</para>
</change>
<change type="enh" ref="1389">
<para>Equality (<literal>==</literal>) and inequality
(<literal>!=</literal>) operators have been implemented for IP
addresses (which previously could only be compared using
ACLs).</para>
</change>
<change type="enh" ref="1390">
<para>The address of the listening socket on which the client
connection was received is now available to VCL as the
<varname>server.ip</varname> variable.</para>
</change>
<change type="enh" ref="1395,1397,1398">
<para>Each object's hash key is now computed based on a string
which is available to VCL as <varname>req.hash</varname>. A VCL
hook named <varname>vcl_hash</varname> has been added to allow
VCL scripts to control hash generation (for instance, whether or
not to include the value of the <literal>Host:</literal> header
in the hash).</para>
</change>
<change type="bug" ref="1423,1559">
<para>The setup code for listening sockets has been modified to
detect and handle situations where a host name resolves to
multiple IP addresses. It will now attempt to bind to each IP
address separately, and report a failure only if none of them
worked.</para>
</change>
<change type="enh" ref="1474">
<para>Network or protocol errors that occur while retrieving an
object from a backend server now result in a synthetic error
page being inserted into the cache with a 30-second TTL. This
should help avoid driving an overburdened backend server into
the ground by repeatedly requesting the same object.</para>
</change>
<change type="enh" ref="1482">
<para>The child process will now drop root privileges
immediately upon startup. The user and group to use are
specified with the <varname>user</varname> and
<varname>group</varname> run-time parameters, which default to
<literal>nobody</literal> and <literal>nogroup</literal>,
respectively. Other changes have been made in an effort to
increase the isolation between parent and child, and reduce the
impact of a compromise of the child process.</para>
</change>
<change type="enh" ref="1506">
<para>Objects which are received from the backend with a
<literal>Vary:</literal> header are now stored separately
according to the values of the headers specified in
<literal>Vary:</literal>. This allows Varnish to correctly
cache e.g. compressed and uncompressed versions of the same
object.</para>
</change>
<change type="enh" ref="1521,1524,1525,1526,1528,1532,1533,1572,1573,1581">
<para>Each Varnish instance now has a name, which by default is
the host name of the machine it runs on, but can be any string
that would be valid as a relative or absolute directory name.
It is used to construct the name of a directory in which the
server state as well as all temporary files are stored. This
makes it possible to run multiple Varnish instances on the same
machine without conflict.</para>
</change>
<change type="enh" ref="1549">
<para>When invoked with the <option>-C</option> option,
<command>varnishd</command> will now not just translate the VCL
code to C, but also compile the C code and attempt to load the
resulting shared object.</para>
</change>
<change type="enh" ref="1552,1576">
<para>Attempts by VCL code to reference a variable outside its
scope or to assign a value to a read-only variable will now
result in compile-time rather than run-time errors.</para>
</change>
<change type="enh" ref="1557,1558">
<para>The new command-line option <option>-F</option> will make
<command>varnishd</command> run in the foreground, without
enabling debugging.</para>
</change>
<change type="enh" ref="1560">
<para>New VCL variables have been introduced to allow inspection
and manipulation of the request sent to the backend
(<varname>bereq.request</varname>, <varname>bereq.url</varname>,
<varname>bereq.proto</varname> and
<varname>bereq.http</varname>) and the response to the client
(<varname>resp.proto</varname>, <varname>resp.status</varname>,
<varname>resp.response</varname> and
<varname>resp.http</varname>).</para>
</change>
<change type="enh" ref="1564,1565">
<para>Statistics from the storage code (including the amount of
data and free space in the cache) are now available to
<command>varnishstat</command> and other statistics-gathering
tools.</para>
</change>
<change type="enh" ref="1548,1561,1567,1568,1570,1586">
<para>Objects are now kept on an LRU list which is kept loosely
up-to-date (to within a few seconds). When cache runs out, the
objects at the tail end of the LRU list are discarded one by one
until there is enough space for the freshly requested object(s).
A VCL hook, <function>vcl_discard</function>, is allowed to
inspect each object and determine its fate by returning either
<command>keep</command> or <command>discard</command>.</para>
</change>
<change type="enh" ref="1612,1640">
<para>A new VCL hook, <function>vcl_deliver</function>, provides
a chance to adjust the response before it is sent to the
client.</para>
</change>
<change type="enh" ref="1626">
<para>A new management command, <command>vcl.show</command>,
displays the VCL source code of any loaded configuration.</para>
</change>
<change type="enh" ref="1628">
<para>A new VCL variable, <varname>now</varname>, provides VCL
scripts with the current time in seconds since the epoch.</para>
</change>
<change type="enh" ref="1628,1629,1630">
<para>A new VCL variable, <varname>obj.lastuse</varname>,
reflects the time in seconds since the object in question was
last used.</para>
</change>
<change type="enh" ref="1645,1646,1648">
<para>VCL scripts can now add an HTTP header (or modify the
value of an existing one) by assigning a value to the
corresponding variable, and strip an HTTP header by using the
<command>remove</command> keyword.</para>
</change>
</subsystem>
<subsystem>
<name>varnishadm</name>
<change type="enh" ref="1502">
<para>This is a new utility which sends a single command to a
Varnish server's management port and prints the result to
<varname>stdout</varname>, greatly simplifying the use of the
management port from scripts.</para>
</change>
</subsystem>
<subsystem>
<name>varnishhist</name>
<change type="enh" ref="1593">
<para>The user interface has been greatly improved; the
histogram will be automatically rescaled and redrawn when the
window size changes, and it is updated regularly rather than at
a rate dependent on the amount of log data gathered. In
addition, the name of the Varnish instance being watched is
displayed in the upper right corner.</para>
</change>
</subsystem>
<subsystem>
<name>varnishncsa</name>
<change type="enh" ref="1479">
<para>In addition to client traffic,
<command>varnishncsa</command> can now also process log data
from backend traffic.</para>
</change>
</subsystem>
<subsystem>
<name>varnishreplay</name>
<change type="enh" ref="1574,1594,1595,1597,1598,1620,1623,1624,1625">
<para>This new utility will attempt to recreate the HTTP traffic
which resulted in the raw Varnish log data which it is
fed.</para>
</change>
</subsystem>
<subsystem>
<name>varnishstat</name>
<change type="enh" ref="1587">
<para>Don't print lifetime averages when it doesn't make any
sense&mdash;for instance, there is no point in dividing the
amount in bytes of free cache space by the lifetime in seconds
of the <command>varnishd</command> process.</para>
</change>
<change type="enh" ref="1589,1590,1591">
<para>The user interface has been greatly improved;
<command>varnishstat</command> will no longer print more than
fits in the terminal, and will respond correctly to window
resize events. The output produced in one-shot mode has been
modified to include symbolic names for each entry. In addition,
the name of the Varnish instance being watched is displayed in
the upper right corner in curses mode.</para>
</change>
</subsystem>
<subsystem>
<name>varnishtop</name>
<change type="enh" ref="1592,1596">
<para>The user interface has been greatly improved;
<command>varnishtop</command> will now respond correctly to
window resize events, and one-shot mode (<option>-1</option>)
actually works. In addition, the name of the Varnish instance
being watched is displayed in the upper right corner in curses
mode.</para>
</change>
</subsystem>
</group>
<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xml" href="changes-html.xsl"?>
<!DOCTYPE changelog [
<!ENTITY mdash "&#8212;">
]>
<!-- $Id$ -->
<changelog xmlns:xi="http://www.w3.org/2001/XInclude">
<package>Varnish</package>
<version>1.1</version>
<xi:include href="changes-1.0.4-1.1.xml"/>
</changelog>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment