r4786 - in trunk/varnish-cache/doc/sphinx: faq installation
andersb at varnish-cache.org
andersb at varnish-cache.org
Sun May 9 20:47:59 CEST 2010
Author: andersb
Date: 2010-05-09 20:47:59 +0200 (Sun, 09 May 2010)
New Revision: 4786
Modified:
trunk/varnish-cache/doc/sphinx/faq/configuration.rst
trunk/varnish-cache/doc/sphinx/faq/general.rst
trunk/varnish-cache/doc/sphinx/installation/install.rst
Log:
Cleaned up some code in the general section. Used the ** marker for bolding the questions. Added a internal ref to the installation doc so we could use best-practice referencing. Added som stuff to FAQ/configuration.
Modified: trunk/varnish-cache/doc/sphinx/faq/configuration.rst
===================================================================
--- trunk/varnish-cache/doc/sphinx/faq/configuration.rst 2010-05-08 13:11:55 UTC (rev 4785)
+++ trunk/varnish-cache/doc/sphinx/faq/configuration.rst 2010-05-09 18:47:59 UTC (rev 4786)
@@ -13,7 +13,7 @@
We are working on documenting VCL. The `WIKI <http://varnish-cache.org/wiki/VCLExamples>`_ contains some examples.
-Please also see "man 7 vcl".
+Please also see ``man 7 vcl``.
**How do I load VCL file while Varnish is running?**
Modified: trunk/varnish-cache/doc/sphinx/faq/general.rst
===================================================================
--- trunk/varnish-cache/doc/sphinx/faq/general.rst 2010-05-08 13:11:55 UTC (rev 4785)
+++ trunk/varnish-cache/doc/sphinx/faq/general.rst 2010-05-09 18:47:59 UTC (rev 4786)
@@ -28,90 +28,90 @@
How...
======
-... How much RAM/Disk do I need for Varnish ?
+**How much RAM/Disk do I need for Varnish?**
- That depends on pretty much everything.
+That depends on pretty much everything.
- I think our best current guidance is that you go for a cost-effective
- RAM configuration, something like 1-16GB, and a SSD disk.
+I think our best current guidance is that you go for a cost-effective
+RAM configuration, something like 1-16GB, and a SSD disk.
- Unless you positively know that you will need it, there is
- little point in spendng a fortune on a hand-sewn motherboard
- that can fit several TB in special RAM blocks, rivetet together
- by leftover watch-makers in Switzerland.
+Unless you positively know that you will need it, there is
+little point in spendng a fortune on a hand-sewn motherboard
+that can fit several TB in special RAM blocks, rivetet together
+by leftover watch-makers in Switzerland.
- On the other hand, if you plot your traffic in Gb/s, you probably
- need all the RAM you can afford/get.
+On the other hand, if you plot your traffic in Gb/s, you probably
+need all the RAM you can afford/get.
-... How can I limit Varnish to use less RAM ?
+**How can I limit Varnish to use less RAM?**
- You can not. Varnish operates in Virtual Memory and it is up to the
- kernel to decide which process gets to use how much RAM to map the
- virtual address-space of the process.
+You can not. Varnish operates in Virtual Memory and it is up to the
+kernel to decide which process gets to use how much RAM to map the
+virtual address-space of the process.
Where...
========
-... Can I find varnish for my operating system ?
+**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
- packagemanager you use.
+We know that Varnish has been packaged for Debian, Ubuntu, RHEL,
+Centos, (Open)SuSE, Gentoo and FreeBSD, possibly more. Check whatever
+packagemanager you use. Or read :ref:`Installing Varnish on your computer <install-doc>`.
Can I...
========
-... Can I use Varnish as a client-side proxy ?
+**Can I use Varnish as a client-side proxy?**
- No. Varnish needs all backends configured in the VCL. Look at squid
- instead.
+No. Varnish needs all backends configured in the VCL. Look at squid
+instead.
-... Can I run Varnish on a 32bit system ?
+**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.
+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.
+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 ?
+**Can I run Varnish on the same system as Apache?**
- Yes, and many people do that with good success.
+Yes, and many people do that with good success.
- There will be competition for resources, but Apache is not particular
- good at using RAM effectively and Varnish is, so this synergy usually
- more than compensates for the competition.
+There will be competition for resources, but Apache is not particular
+good at using RAM effectively and Varnish is, so this synergy usually
+more than compensates for the competition.
-... Can I run multiple Varnish on the same system ?
+**Can I run multiple Varnish on the same system?**
- Yes, as long as you give them different TCP ports and different ```-n```
- arguments, you will be fine.
+Yes, as long as you give them different TCP ports and different ``-n``
+arguments, you will be fine.
-... Can I cache multiple vhosts with one Varnish ?
+**Can I cache multiple vhosts with one Varnish?**
- Yes, that works right out of the box.
+Yes, that works right out of the box.
-... Can I see what is cached in Varnish ?
+**Can I see what is cached in Varnish?**
- That is not possible for several reasons. A command to list
- all the contents of a Varnish cache with millions of objects would
- bring your Varnish to a standstill while it traverses the index.
+That is not possible for several reasons. A command to list
+all the contents of a Varnish cache with millions of objects would
+bring your Varnish to a standstill while it traverses the index.
- Besides, the output is a lot less useful than you might think.
+Besides, the output is a lot less useful than you might think.
-... Can I use Varnish to do HTTPS ?
+**Can I use Varnish to do HTTPS?**
- Not at present, and while we keep an eye on this, there are no
- current plans to add HTTPS support, until we can find a way where
- it adds significant value, relative to running a stand-alone
- HTTPS proxy such as ngnix or pound.
+Not at present, and while we keep an eye on this, there are no
+current plans to add HTTPS support, until we can find a way where
+it adds significant value, relative to running a stand-alone
+HTTPS proxy such as ngnix or pound.
-... Can Varnish load balance between multiple backends ?
+**Can Varnish load balance between multiple backends?**
- Yes, you need VCL code like this::
+Yes, you need VCL code like this::
director foobar round-robin {
{ .backend = { .host = "www1.example.com; .port = "http"; } }
@@ -127,58 +127,72 @@
Why ...
=======
-... Varnish does not cache things, all requests hit the backend
+**Why does it look like Varnish sends all requests to the backend? I thought it was a cache?**
- The number one cause is cookies, the ```default.vcl``` will
- not cache anything if the request has a ```Cookie:``` header
- or the if the backend sends a ```Set-Cookie:``` header.
+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.
- Number two cause is authentication, same thing.
-... Why are regular expressions case-sensitive ?
+**Why are regular expressions case-sensitive?**
- Some HTTP headers, such as ```Host:``` and ```Location:```
- contain FQDN's 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.
+Some HTTP headers, such as ``Host:`` and ``Location:``
+contain FQDN's 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.
+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-insentive.
- (We promise not to change our minds about this again.)
+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-insentive.
+(We promise not to change our minds about this again.)
- To make a PCRE regex case insensitive, put ```(?i)``` at the start::
+To make a PCRE regex case insensitive, put ``(?i)`` at the start::
if (req.http.host ~ "?iexample.com$") {
...
}
- See the [http://www.pcre.org/pcre.txt PCRE man pages] for more information.
+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 ?
+**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 softwares version number.
+The number in the ``Via:`` header is the HTTP protocol version
+supported/applied, not the softwares version number.
-... Why did you call it *Varnish* ?
+**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:
+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
+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.
+The three point describes happens to your backend system when you
+put Varnish in front of it.
+
+How...
+======
+
+**How do I instruct varnish to ignore the query parameters and only cache one instance of an object?**
+
+This can be achieved by removing the query parameters using a regexp::
+
+ sub vcl_recv {
+ set req.url = regsub(req.url, "\?.*", "");
+ }
+
+
Modified: trunk/varnish-cache/doc/sphinx/installation/install.rst
===================================================================
--- trunk/varnish-cache/doc/sphinx/installation/install.rst 2010-05-08 13:11:55 UTC (rev 4785)
+++ trunk/varnish-cache/doc/sphinx/installation/install.rst 2010-05-09 18:47:59 UTC (rev 4786)
@@ -1,3 +1,5 @@
+.. _install-doc:
+
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Installing Varnish on your computer
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -27,6 +29,7 @@
**CentOS/RedHat 5.4 - RPM files**
We try to keep the lastest version available as prebuildt RPMs (el4 & el5) on `SourceForge <http://sourceforge.net/projects/varnish/files/>`_.
+
Varnish is included in the `EPEL <http://fedoraproject.org/wiki/EPEL>`_ repository. **BUT** unfortunatly we had a syntax change in Varnish 2.0.6->2.1.X. This means that we can not update Varnish in `EPEL <http://fedoraproject.org/wiki/EPEL>`_ so the latest version there is Varnish 2.0.6. In the future (EPEL6) we should be available with Varnish 2.1.X or higher.
**Debian/Ubuntu - DEB files**
More information about the varnish-commit
mailing list