Commit 12a475d9 authored by Per Buer's avatar Per Buer

Removed stuff from the guide that goes into the tutorial

parent 6924b79f
.. _tutorial-intro:
What is Varnish?
----------------
Varnish Cache is a web application accelerator also known as a caching
HTTP reverse proxy. You install it in front of any server that speaks
HTTP and configure it to cache the contents. Varnish Cache is really,
really fast. It typically speeds up delivery with a factor of 300 -
1000x, depending on your architecture.
Performance
~~~~~~~~~~~
Varnish performs really, really well. It is usually bound by the speed
of the network, effectivly turning performance into a non-issue. We've
seen Varnish delivering 20 Gbps on regular off-the-shelf hardware.
Flexibility
~~~~~~~~~~~
One of the key features of Varnish Cache, in addition to it's
performance, is the flexibility of it's configuration language,
VCL. VCL enables you to write policies on how incoming requests should
be handled. In such a policy you can decide what content you want to
serve, from where you want to get the content and how the request or
response should be altered. You can read more about this in our
tutorial.
Supported plattforms
~~~~~~~~~~~~~~~~~~~~
Varnish is written to run on modern versions of Linux and FreeBSD and
the best experience is had on those plattforms. Thanks to our
contributors it also runs on NetBSD, OpenBSD and OS X.
Put Varnish on port 80
----------------------
Until now we've been running with Varnish on a high port, for testing
purposes. You should test your application and if it works OK we can
switch, so Varnish will be running on port 80 and your web server on a
high port.
First we kill off varnishd::
# pkill varnishd
and stop your web server. Edit the configuration for your web server
and make it bind to port 8080 instead of 80. Now open the Varnish
default.vcl and change the port of the *default* backend to 8080.
Start up your web server and then start varnish::
# varnishd -f /usr/local/etc/varnish/default.vcl -s malloc,1G -T 127.0.0.1:2000
Note that we've removed the -a option. Now Varnish, as its default
setting dictates, will bind to the http port (80). Now everyone
accessing your site will be accessing through Varnish.
.. _tutorial-starting_varnish:
Starting Varnish
----------------
I assume varnishd is in your path. You might want to run ``pkill
varnishd`` to make sure varnishd isn't running. Become root and type:
``# varnishd -f /usr/local/etc/varnish/default.vcl -s malloc,1G -T 127.0.0.1:2000 -a 0.0.0.0:8080``
I added a few options, lets go through them:
``-f /usr/local/etc/varnish/default.vcl``
The -f options specifies what configuration varnishd should use.
``-s malloc,1G``
The -s options chooses the storage type Varnish should use for
storing its content. I used the type *malloc*, which just uses memory
for storage. There are other backends as well, described in
:ref:tutorial-storage. 1G specifies how much memory should be allocated
- one gigabyte.
``-T 127.0.0.1:2000``
Varnish has a built-in text-based administration
interface. Activating the interface makes Varnish manageble without
stopping it. You can specify what interface the management interface
should listen to. Make sure you don't expose the management interface
to the world as you can easily gain root access to a system via the
Varnish management interface. I recommend tieing it to localhost. If
you have users on your system that you don't fully trust, use firewall
rules to restrict access to the interface to root only.
``-a 0.0.0.0:8080``
I specify that I want Varnish to listen on port 8080 for incomming
HTTP requests. For a production environment you would probably make
Varnish listen on port 80, which is the default.
Now you have Varnish running. Let us make sure that it works
properly. Use your browser to go to http://192.168.2.2:8080/
(obviously, you should replace the IP address with one on your own
system) - you should now see your web application running there.
Whether or not the application actually goes faster when run through
Varnish depends on a few factors. If you application uses cookies for
every session (a lot of PHP and Java applications seem to send a
session cookie if it is needed or not) or if it uses authentication
chances are Varnish won't do much caching. Ignore that for the moment,
we come back to that in :ref:`tutorial-increasing_your_hitrate`.
Lets make sure that Varnish really does do something to your web
site. To do that we'll take a look at the logs.
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