Commit ebd73a71 authored by Per Buer's avatar Per Buer Committed by Tollef Fog Heen

cleaned out some cruft. Added links to the actual docs

parent d53674df
......@@ -5,25 +5,7 @@ General questions
What is Varnish?
================
Varnish is a state-of-the-art, high-performance `web accelerator <http://en.wikipedia.org/wiki/Web_accelerator>`_. It uses the advanced features in Linux 2.6, FreeBSD 6/7 and Solaris 10 to achieve its high performance.
Some of the features include
* A modern design
* VCL - a very flexible configuration language
* Load balancing with health checking of backends
* Partial support for ESI
* URL rewriting
* Graceful handling of "dead" backends
Features to come (Experimental):
* Support for Ranged headers
* Support for persistent cache
Varnish is free software and is licenced under a modified BSD licence. Please read the introduction to get started with Varnish.
Please see ref:`tutorial-intro`.
How...
======
......@@ -59,7 +41,9 @@ This can be achieved by removing the query parameters using a regexp::
**How can I force a refresh on a object cached by varnish?**
Refreshing is often called `purging <http://dictionary.reference.com/browse/PURGE>`_ a document. You can purge at least 2 different ways in Varnish:
Refreshing is often called `purging
<http://dictionary.reference.com/browse/PURGE>`_ a document. You can
purge at least 2 different ways in Varnish:
1. Command line
......@@ -118,23 +102,6 @@ You can use the ``bereq`` object for altering requests going to the backend, but
return(fetch);
}
**How do I force the backend to send Vary headers?**
We have anecdotal evidence of non-RFC2616 compliant backends, which support content negotiation, but which do not emit a Vary header, unless the request contains Accept headers.
It may be appropriate to send no-op Accept headers to trick the backend into sending us the Vary header.
The following should be sufficient for most cases::
Accept: */*
Accept-Language: *
Accept-Charset: *
Accept-Encoding: identity
Note that Accept-Encoding can not be set to ``*``, as the backend might then send back a compressed response which the client would be unable to process.
This can of course be implemented in VCL.
**How can I customize the error messages that Varnish returns?**
A custom error page can be generated by adding a ``vcl_error`` to your configuration file. The default error page looks like this::
......@@ -171,32 +138,9 @@ This can be achieved by removing the query parameters using a regexp::
}
Where...
========
**Can I find varnish for my operating system?**
We know that Varnish has been packaged for Debian, Ubuntu, RHEL,
CentOS, (Open)SUSE, Gentoo and FreeBSD, possibly more. Check whatever
package manager you use. Or read :ref:`Installing Varnish on your computer <install-doc>`.
Can I...
========
**Can I use Varnish as a client-side proxy?**
No. Varnish needs all backends configured in the VCL. Look at squid
instead.
**Can I run Varnish on a 32bit system?**
Yes, recently somebody even claimed to run Varnish on his N900 mobile
phone recently, but if you have the choice, go 64 bit from the start.
Varnish is written to use Virtual Memory and on a 32bit system that
really cramps your style, and you will have trouble configuring more
than 2 GB of storage.
**Can I run Varnish on the same system as Apache?**
Yes, and many people do that with good success.
......@@ -243,83 +187,28 @@ Yes, you need VCL code like this::
set req.backend = foobar;
}
(XXX: reference to docs, once written)
Please see :ref:`tutorial-advanced_backend_servers-directors_`.
Why ...
=======
**Why does it look like Varnish sends all requests to the backend? I thought it was a cache?**
There are 2 common reasons for this:
1. The object's ``ttl expired``. A common situation is that the backend does not set an expiry time on the requested image/file/webpage, so Varnish uses the default TTL (normally 120s).
2. Your site uses ``cookies``:
* By default, varnish will not cache ``responses`` from the backend that come with a ``Set-Cookie``: header.
* By default, varnish will not serve ``requests`` with a ``Cookie:`` header, but pass them to the backend instead. Check out [wiki:VCLExamples these VCL examples] on how to make varnish cache cookied/logged in users sanely.
**Why are regular expressions case-sensitive?**
Some HTTP headers, such as ``Host:`` and ``Location:`` contain fully
qualified domain names, which by definition is not case-sensitive.
Other HTTP headers are case-sensitive, most notably the URLs.
Therefore a "one size fits all" solution is not possible.
In previous releases, we used the POSIX regular expressions
supplied with the operating system, and decided, because the
most common use of regexps were on ```Host:``` headers, that
they should not be case-sensitive.
From version 2.1.0 and forward, we use PCRE regular expressions,
where it *is* possible to control case-sensitivity in the
individual regular expressions, so we decided that it would
probably confuse people if we made the default case-insensitive.
(We promise not to change our minds about this again.)
To make a PCRE regex case insensitive, put ``(?i)`` at the start::
if (req.http.host ~ "(?i)example.com$") {
...
}
See the `PCRE man pages <http://www.pcre.org/pcre.txt>`_ for more information.
**Are regular expressions case sensitive or not? Can I change it?**
In 2.1 and newer, regular expressions are case sensitive by default. In earlier versions, they were case insensitive.
To change this for a single regex in 2.1, use ``(?i)`` at the start.
See the `PCRE man pages <http://www.pcre.org/pcre.txt>`_ for more information.
**Why does the ``Via:`` header say 1.1 in Varnish 2.1.x?**
The number in the ``Via:`` header is the HTTP protocol version
supported/applied, not the software's version number.
**Why did you call it *Varnish*?**
Long story, but basically the instigator of Varnish spent a long
time staring at an art-poster with the word "Vernisage" and ended
up checking it in a dictionary, which gives the following three
meanings of the word:
r.v. var·nished, var·nish·ing, var·nish·es
1. To cover with varnish.
2. To give a smooth and glossy finish to.
3. To give a deceptively attractive appearance to; gloss over.
The three point describes happens to your backend system when you
put Varnish in front of it.
Please see ref:`tutorial-increasing_your_hitrate`.
**Why does Varnish require the system to have a C compiler?**
The :ref:`VCL <faq-vcl>` compiler generates C source as output (your config file), and uses the systems C-compiler to compile that into a shared library. If there is no C compiler, Varnish will not work.
The :ref:`VCL <faq-vcl>` compiler generates C source as output (your
config file), and uses the systems C-compiler to compile that into a
shared library. If there is no C compiler, Varnish will not work.
**Isn't that security problem?**
The days when you could prevent people from running non-approved programs by removing the C compiler from your system ended roughly with the VAX 11/780 computer.
The days when you could prevent people from running non-approved
programs by removing the C compiler from your system ended roughly
with the VAX 11/780 computer.
Troubleshooting
===============
......
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