Commit 6924b79f authored by Per Buer's avatar Per Buer

The tutorial is reappearing

parent 4371f7bd
.. _tutorial-backend_servers:
Backend servers
---------------
Varnish has a concept of "backend" or "origin" servers. A backend
server is the server providing the content Varnish will accelerate.
Our first task is to tell Varnish where it can find its content. Start
your favorite text editor and open the varnish default configuration
file. If you installed from source this is
/usr/local/etc/varnish/default.vcl, if you installed from a package it
is probably /etc/varnish/default.vcl.
Somewhere in the top there will be a section that looks a bit like this.::
# backend default {
# .host = "127.0.0.1";
# .port = "8080";
# }
We comment in this bit of text and change the port setting from 8080
to 80, making the text look like.::
backend default {
.host = "127.0.0.1";
.port = "80";
}
Now, this piece of configuration defines a backend in Varnish called
*default*. When Varnish needs to get content from this backend it will
connect to port 80 on localhost (127.0.0.1).
Varnish can have several backends defined and can you can even join
several backends together into clusters of backends for load balancing
purposes.
Now that we have the basic Varnish configuration done, let us start up
Varnish on port 8080 so we can do some fundamental testing on it.
......@@ -4,5 +4,13 @@
The Varnish Tutorial
%%%%%%%%%%%%%%%%%%%%
What is a tutorial, anyway?
What is a tutorial, anyway? Let's start off by including some of the stuff we chucked out of the previous tutorial - now "users guide"
.. toctree:: :maxdepth: 1
introduction
starting_varnish
putting_varnish_on_port_80
backend_servers
now_what
.. _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.
=========
Now what?
=========
You've read through the tutorial. You should have Varnish up and
running. You should know about the logs and you should have a rough
idea of what VCL is.
\ No newline at end of file
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