Difference between pages "User:Oxsard" and "Package:Varnish"

(Difference between pages)
(Created page with "Hi! I'm oxsard")
 
m
 
Line 1: Line 1:
Hi! I'm oxsard
+
{{Ebuild
 +
|Summary=Varnish is a state-of-the-art, high-performance HTTP accelerator
 +
|CatPkg=www-servers/varnish
 +
|Homepage=https://www.varnish-cache.org/
 +
}}
 +
'''Varnish''' is a Web cache and HTTP accelerator.  Varnish will either serve cached content, or retrieve content from the server, and cache it.  Varnish cache will reduce I/O pressure on Web servers.
 +
 
 +
==Install==
 +
===Emerge===
 +
 
 +
Install {{Package|www-servers/varnish}}:
 +
<console>###i## emerge www-servers/varnish</console>
 +
 
 +
==Configuration==
 +
 
 +
{{note|as your varnish is local to your server, your server needs to be aware that it is behind a proxy, and configured for [http://en.wikipedia.org/wiki/X-Forwarded-For x-forwarded-for] or similar to fetch real users IP addresses instead of displaying 127.0.0.1 or localhost.}}
 +
 
 +
Configuration is controlled by /etc/varnish/default.vcl & /etc/conf.d/varnishd
 +
 
 +
{{file|name=/etc/varnish/default.vcl|desc=varnish configuration file|body=
 +
vcl 4.0;
 +
backend default {
 +
    .host = "127.0.0.1";
 +
    .port = "8080";
 +
}
 +
}}
 +
 
 +
{{file|name=/etc/conf.d/varnishd|desc=varnish configuration file|body=
 +
VARNISHD="/usr/sbin/varnishd"
 +
VARNISHADM="/usr/bin/varnishadm"
 +
CONFIGFILE="/etc/varnish/default.vcl"
 +
VARNISHD_OPTS="-a 127.0.0.1:80"
 +
VARNISHD_OPTS="${VARNISHD_OPTS} -u varnish -g varnish"
 +
}}
 +
 
 +
Varnish will fetch data from localhost:8080 and serve accelerated proxy data on localhost:80
 +
 
 +
=== [https://www.varnish-cache.org/docs/4.0/users-guide/increasing-your-hitrate.html Achieving a high hit rate] ===
 +
 
 +
=== c10k ===
 +
For 10,000 concurrent connections -- or not -- a few configuration settings control the power of varnish.  If you're having varnish directly serve to the outside world, dial back concurrency to say 50 or 100 connections per IP. You must take into account corporations and universities hammering several connections from a singular IP.  c10k is useful information for if varnish is behind a load balancer such as pound, nginx, or tengine, and all requests are internal and local.
 +
 
 +
{{file|name=/etc/conf.d/varnishd|desc=varnish concurrency settings|body=
 +
VARNISHD_OPTS="-a 127.0.0.1:80 -p thread_pool_min=20 -p thread_pool_max=1000 -p thread_pool_add_delay=2 -s malloc,700M"
 +
}}
 +
 
 +
{{file|name=/etc/varnish/default.vcl|desc=varnish concurrency settings|body=
 +
backend default {
 +
    .host = "127.0.0.1";
 +
    .port = "8080";
 +
    .connect_timeout = 600s;
 +
    .first_byte_timeout = 600s;
 +
    .between_bytes_timeout = 600s;
 +
    .max_connections = 10000;
 +
    # .port = "80" led to issues with competing for the port with apache.
 +
}
 +
}}
 +
 
 +
== Boot Service ==
 +
 
 +
To start varnish immediately:
 +
<console>###i## rc-service varnishd start</console>
 +
 
 +
To start varnish at boot:
 +
<console>###i## rc-update add varnishd default</console>
 +
 
 +
== Verification ==
 +
To verify that your traffic is going through varnish, and see if you're getting hits or misses:
 +
<console>$##i## curl -I http://www.funtoo.org/Welcome</console>
 +
 
 +
== Benchmarking ==
 +
{{package|app-admin/apache-tools}} apache benchmark can show the power of varnish.  The examples shown are running 500 requests with concurrency of 100 hits.
 +
 
 +
;Example 1: ab against a 3 worker cluster mode puma server
 +
<console>###i## ab -n 500 -c 100 http://127.0.0.1:3000/index.html | grep Request</console>
 +
Requests per second:    110.92 [#/sec] (mean)
 +
 
 +
;Example 2: ab against the same server served through varnish
 +
<console>###i## ab -n 500 -c 100 http://127.0.0.1/index.html | grep Request</console>
 +
Requests per second:    10268.42 [#/sec] (mean)
 +
 
 +
== SSL support ==
 +
Varnish does not support ssl.  There are packages to get around this limitation:
 +
* {{package|net-misc/stunnel}}
 +
* {{package|www-servers/pound}}
 +
 
 +
== Media ==
 +
{{#widget:YouTube16x9|id=JEF6_XC-2ZU}}
 +
 
 +
== External Resources ==
 +
https://www.varnish-software.com/static/book/index.html
 +
{{EbuildFooter}}

Latest revision as of 09:14, January 1, 2015

www-servers/varnish


Source Repository:Gentoo Portage Tree
Homepage

Summary: Varnish is a state-of-the-art, high-performance HTTP accelerator

Use Flags

tools
Build additional tools: varnishhist, varnishstat, varnishtop, varnishsizes
jemalloc
Use dev-libs/jemalloc for allocations

News

Drobbins

RSS/Atom Support

You can now follow this news feed at http://www.funtoo.org/news/atom.xml .
10 February 2015 by Drobbins
Drobbins

Creating a Friendly Funtoo Culture

This news item details some recent steps that have been taken to help ensure that Funtoo is a friendly and welcoming place for our users.
2 February 2015 by Drobbins
Mgorny

CPU FLAGS X86

CPU_FLAGS_X86 are being introduced to group together USE flags managing CPU instruction sets.
31 January 2015 by Mgorny
View More News...

Varnish

Tip

This is a wiki page. To edit it, Create a Funtoo account. Then log in and then click here to edit this page. See our editing guidelines to becoming a wiki-editing pro.

Varnish is a Web cache and HTTP accelerator. Varnish will either serve cached content, or retrieve content from the server, and cache it. Varnish cache will reduce I/O pressure on Web servers.

Install

Emerge

Install Varnish:

# emerge www-servers/varnish

Configuration

Note

as your varnish is local to your server, your server needs to be aware that it is behind a proxy, and configured for x-forwarded-for or similar to fetch real users IP addresses instead of displaying 127.0.0.1 or localhost.

Configuration is controlled by /etc/varnish/default.vcl & /etc/conf.d/varnishd

/etc/varnish/default.vcl - varnish configuration file
vcl 4.0;
backend default {
    .host = "127.0.0.1";
    .port = "8080";
}
/etc/conf.d/varnishd - varnish configuration file
VARNISHD="/usr/sbin/varnishd"
VARNISHADM="/usr/bin/varnishadm"
CONFIGFILE="/etc/varnish/default.vcl"
VARNISHD_OPTS="-a 127.0.0.1:80"
VARNISHD_OPTS="${VARNISHD_OPTS} -u varnish -g varnish"

Varnish will fetch data from localhost:8080 and serve accelerated proxy data on localhost:80

Achieving a high hit rate

c10k

For 10,000 concurrent connections -- or not -- a few configuration settings control the power of varnish. If you're having varnish directly serve to the outside world, dial back concurrency to say 50 or 100 connections per IP. You must take into account corporations and universities hammering several connections from a singular IP. c10k is useful information for if varnish is behind a load balancer such as pound, nginx, or tengine, and all requests are internal and local.

/etc/conf.d/varnishd - varnish concurrency settings
VARNISHD_OPTS="-a 127.0.0.1:80 -p thread_pool_min=20 -p thread_pool_max=1000 -p thread_pool_add_delay=2 -s malloc,700M"
/etc/varnish/default.vcl - varnish concurrency settings
backend default {
    .host = "127.0.0.1";
    .port = "8080";
    .connect_timeout = 600s;
    .first_byte_timeout = 600s;
    .between_bytes_timeout = 600s;
    .max_connections = 10000;
    # .port = "80" led to issues with competing for the port with apache.
}

Boot Service

To start varnish immediately:

# rc-service varnishd start

To start varnish at boot:

# rc-update add varnishd default

Verification

To verify that your traffic is going through varnish, and see if you're getting hits or misses:

$ curl -I http://www.funtoo.org/Welcome

Benchmarking

Apache-tools apache benchmark can show the power of varnish. The examples shown are running 500 requests with concurrency of 100 hits.

Example 1
ab against a 3 worker cluster mode puma server
# ab -n 500 -c 100 http://127.0.0.1:3000/index.html | grep Request

Requests per second: 110.92 [#/sec] (mean)

Example 2
ab against the same server served through varnish
# ab -n 500 -c 100 http://127.0.0.1/index.html | grep Request

Requests per second: 10268.42 [#/sec] (mean)

SSL support

Varnish does not support ssl. There are packages to get around this limitation:

  • net-misc/stunnel (package not on wiki - please add)
  • www-servers/pound (package not on wiki - please add)

Media

External Resources

https://www.varnish-software.com/static/book/index.html