SlideShare ist ein Scribd-Unternehmen logo
1 von 25
Downloaden Sie, um offline zu lesen
1	
  
Varnish	
  –	
  More	
  than	
  a	
  cache	
  
Bernd Löffeld
Head of Platform Development
Magic Internet GmbH
Email: Bernd.Loeffeld@magicinternet.de
Magic Internet entwickelt und betreut
www.myvideo.de
Deutschlands großes Videoportal!
Varnish	
  Features	
  
2	
  
o  Caching	
  
o  Loadbalancing	
  and	
  Backend-­‐Selec3on	
  
o  Header	
  analysis	
  and	
  manipula3on	
  
o  DSL	
  for	
  handling	
  all	
  that	
  
o  Edge	
  Side	
  Includes	
  
Varnish	
  Subrou5nes	
  
3	
  
Varnish	
  Configura5on	
  Language	
  in	
  example	
  
4	
  
sub vcl_recv {!
if (req.restarts == 0) {!
if (req.http.x-forwarded-for) {!
set req.http.X-Forwarded-For =!
req.http.X-Forwarded-For + ", " + client.ip;!
} else {!
set req.http.X-Forwarded-For = client.ip;!
}!
}!
if (req.request != "GET" &&!
req.request != "HEAD" &&!
req.request != "PUT" &&!
req.request != "POST" &&!
req.request != "TRACE" &&!
req.request != "OPTIONS" &&!
req.request != "DELETE") {!
return (pipe);!
}!
if (req.request != "GET" && req.request != "HEAD") {!
/* We only deal with GET and HEAD by default */!
return (pass);!
}!
if (req.http.Authorization || req.http.Cookie) {!
return (pass);!
}!
return (lookup);!
}!
The	
  Setup	
  –	
  A	
  vision	
  by	
  now	
  
5	
  
Start:	
  Just	
  a	
  simple	
  Web	
  Applica5on	
  
6	
  
Start:	
  Just	
  a	
  simple	
  Web	
  Applica5on	
  
7	
  
Step	
  1:	
  Ac5vate	
  the	
  cache	
  
8	
  
Step	
  1:	
  Ac5vate	
  the	
  cache	
  
9	
  
include "bwb/backends.vcl“;
Varnish à /etc/varnish/main.vcl
backend default {
.host = "nginx-1";
.port = "80";
}
Varnish à /etc/varnish/bwb/backends.vcl
server {
expires 1m;
}
nginx-1 à /etc/nginx/sites-available/bwb
Step	
  1:	
  Ac5vate	
  the	
  cache	
  
10	
  
Step	
  2:	
  Introduce	
  new	
  Backend	
  
11	
  
Step	
  2:	
  Introduce	
  new	
  Backend	
  
12	
  
include "bwb/backends.vcl";
sub vcl_recv {
if (req.url ~ "/fancy/") {
set req.backend = fancy;
}
}
Varnish à /etc/varnish/main.vcl
backend default {
.host = "nginx-1";
.port = "80";
}
backend fancy {
.host = "nginx-2";
.port = "80";
}
Varnish à /etc/varnish/bwb/backends.vcl
Step	
  2:	
  Introduce	
  new	
  Backend	
  
13	
  
<html>
<head>
<title>Legacy Web Application</title>
<link href="/fancy/css/default.css" rel="stylesheet"
type="text/css" media="all" />
</head>
...
nginx-1 à /srv/www/bwb/page1.html
Step	
  2:	
  Introduce	
  new	
  Backend	
  
14	
  
Step	
  2:	
  Introduce	
  new	
  Backend	
  
15	
  
Step	
  3:	
  Connect	
  the	
  Applica5ons	
  with	
  ESI	
  
16	
  
Step	
  3:	
  Connect	
  the	
  Applica5ons	
  with	
  ESI	
  
17	
  
<body>
<!-- Old Navigation HTML was removed!-->
<esi:include src="/fancy/nav/navigation.html" />
<h1>Just a robust and experienced application</h1>
<div>Page 1 is mostly empty.</div>
<esi:include src="/fancy/news/abox.html" />
</body>
nginx-1 à /srv/www/bwb/page1.html
include "bwb/backends.vcl";
sub vcl_recv {
if (req.url ~ "/fancy/") { set req.backend = fancy; }
}
sub vcl_fetch {
set beresp.do_esi = true;
}
Varnish à /etc/varnish/main.vcl
Step	
  3:	
  Connect	
  the	
  Applica5ons	
  with	
  ESI	
  
18	
  
<div class="container newsbox">
<h1>News</h1>
<div>really hot new stuff to read</div>
</div>
nginx-2 à /srv/www/bwb-fancy/fancy/news/abox.html
server {
...
location /fancy/news/ {
expires 10s;
}
}
nginx-2 à /etc/nginx/sites-available/bwb-fancy
Step	
  3:	
  Connect	
  the	
  Applica5ons	
  with	
  ESI	
  
19	
  
Step	
  3:	
  Connect	
  the	
  Applica5ons	
  with	
  ESI	
  
20	
  
Step	
  4:	
  Simple	
  balancing	
  between	
  two	
  backends	
  
21	
  
Step	
  4:	
  Simple	
  balancing	
  between	
  two	
  backends	
  
22	
  
backend default { … }
backend fancy_1 {
.host = "nginx-2";
.port = "80";
}
backend fancy_2 {
.host = "nginx-3";
.port = "80";
}
varnish à /etc/varnish/bwb/backends.vcl
director fancy_round round-robin {
{
.backend = fancy_1;
}
{
.backend = fancy_2;
}
}
Varnish à /etc/varnish/bwb/director.vcl
Step	
  4:	
  Simple	
  balancing	
  between	
  two	
  backends	
  
23	
  
include "bwb/backends.vcl";
include "bwb/director.vcl";
sub vcl_recv {
if(req.url ~ "/fancy/") {
set req.backend = fancy_round;
}
}
varnish à /etc/varnish/main.vcl
Step	
  4:	
  Simple	
  balancing	
  between	
  two	
  backends	
  
24	
  
192.168.56.5 - -
[28/Sep/2013:19:51:57 +0200]
"GET /fancy/news/abox.html
HTTP/1.1" 200 100 “
192.168.56.5 - -
[28/Sep/2013:19:52:28 +0200]
"GET /fancy/news/abox.html
HTTP/1.1" 200 100 “
192.168.56.5 - -
[28/Sep/2013:19:52:51 +0200]
"GET /fancy/news/abox.html
HTTP/1.1" 200 100 “
192.168.56.5 - -
[28/Sep/2013:19:53:17 +0200]
"GET /fancy/news/abox.html
HTTP/1.1" 200 100
access-log nginx-1
192.168.56.5 - -
[28/Sep/2013:19:52:14 +0200]
"GET /fancy/news/abox.html
HTTP/1.1" 200 100 “
192.168.56.5 - -
[28/Sep/2013:19:52:39 +0200]
"GET /fancy/news/abox.html
HTTP/1.1" 200 100 “
192.168.56.5 - -
[28/Sep/2013:19:53:05 +0200]
"GET /fancy/news/abox.html
HTTP/1.1" 200 100 “
192.168.56.5 - -
[28/Sep/2013:19:53:31 +0200]
"GET /fancy/news/abox.html
HTTP/1.1" 200 100
access-log nginx-2
Want	
  to	
  know	
  more?	
  
25	
  
Bernd.Loeffeld@magicinternet.de	
  
hCp://www.myvideo.de/karriere	
  
Work	
  with	
  us!	
  
o  Architect	
  
o  Developer	
  
o  Sysadmin	
  

Weitere ähnliche Inhalte

Was ist angesagt?

Websockets in Node.js - Making them reliable and scalable
Websockets in Node.js - Making them reliable and scalableWebsockets in Node.js - Making them reliable and scalable
Websockets in Node.js - Making them reliable and scalable
Gareth Marland
 
Websockets at tossug
Websockets at tossugWebsockets at tossug
Websockets at tossug
clkao
 

Was ist angesagt? (20)

WordCamp Ann Arbor 2014: Site Caching, From Nothing to Everything
WordCamp Ann Arbor 2014: Site Caching, From Nothing to EverythingWordCamp Ann Arbor 2014: Site Caching, From Nothing to Everything
WordCamp Ann Arbor 2014: Site Caching, From Nothing to Everything
 
Websockets in Node.js - Making them reliable and scalable
Websockets in Node.js - Making them reliable and scalableWebsockets in Node.js - Making them reliable and scalable
Websockets in Node.js - Making them reliable and scalable
 
The Case for HTTP/2
The Case for HTTP/2The Case for HTTP/2
The Case for HTTP/2
 
Websockets at tossug
Websockets at tossugWebsockets at tossug
Websockets at tossug
 
The Case for HTTP/2 - EpicFEL Sept 2015
The Case for HTTP/2 - EpicFEL Sept 2015The Case for HTTP/2 - EpicFEL Sept 2015
The Case for HTTP/2 - EpicFEL Sept 2015
 
Front-End Performance Optimizing
Front-End Performance OptimizingFront-End Performance Optimizing
Front-End Performance Optimizing
 
Front End Website Optimization
Front End Website OptimizationFront End Website Optimization
Front End Website Optimization
 
Develop:BBC 2013 - Turbocharge your mobile web apps by using offline
Develop:BBC 2013 - Turbocharge your mobile web apps by using offlineDevelop:BBC 2013 - Turbocharge your mobile web apps by using offline
Develop:BBC 2013 - Turbocharge your mobile web apps by using offline
 
Blazor - An Introduction
Blazor - An IntroductionBlazor - An Introduction
Blazor - An Introduction
 
The 5 most common reasons for a slow WordPress site and how to fix them
The 5 most common reasons for a slow WordPress site and how to fix themThe 5 most common reasons for a slow WordPress site and how to fix them
The 5 most common reasons for a slow WordPress site and how to fix them
 
PHPDay 2013 - High Performance PHP
PHPDay 2013 - High Performance PHPPHPDay 2013 - High Performance PHP
PHPDay 2013 - High Performance PHP
 
Care and feeding notes
Care and feeding notesCare and feeding notes
Care and feeding notes
 
Web application intro
Web application introWeb application intro
Web application intro
 
Bigger Stronger Faster
Bigger Stronger FasterBigger Stronger Faster
Bigger Stronger Faster
 
HTTP2 is Here!
HTTP2 is Here!HTTP2 is Here!
HTTP2 is Here!
 
Goodbye JavaScript Hello Blazor
Goodbye JavaScript Hello BlazorGoodbye JavaScript Hello Blazor
Goodbye JavaScript Hello Blazor
 
Metarefresh
MetarefreshMetarefresh
Metarefresh
 
Choosing a Web Architecture for Perl
Choosing a Web Architecture for PerlChoosing a Web Architecture for Perl
Choosing a Web Architecture for Perl
 
.htaccess for SEOs - A presentation by Roxana Stingu
.htaccess for SEOs - A presentation by Roxana Stingu.htaccess for SEOs - A presentation by Roxana Stingu
.htaccess for SEOs - A presentation by Roxana Stingu
 
Scaling my sql_in_3d
Scaling my sql_in_3dScaling my sql_in_3d
Scaling my sql_in_3d
 

Ähnlich wie Varnish more than a cache

T3DD12 Caching with Varnish
T3DD12 Caching with VarnishT3DD12 Caching with Varnish
T3DD12 Caching with Varnish
AOE
 
June8 presentation
June8 presentationJune8 presentation
June8 presentation
nicobn
 
Fix me if you can - DrupalCon prague
Fix me if you can - DrupalCon pragueFix me if you can - DrupalCon prague
Fix me if you can - DrupalCon prague
hernanibf
 

Ähnlich wie Varnish more than a cache (20)

T3DD12 Caching with Varnish
T3DD12 Caching with VarnishT3DD12 Caching with Varnish
T3DD12 Caching with Varnish
 
Performance
PerformancePerformance
Performance
 
HTML5와 모바일
HTML5와 모바일HTML5와 모바일
HTML5와 모바일
 
VUG5: Varnish at Opera Software
VUG5: Varnish at Opera SoftwareVUG5: Varnish at Opera Software
VUG5: Varnish at Opera Software
 
Going crazy with Varnish and Symfony
Going crazy with Varnish and SymfonyGoing crazy with Varnish and Symfony
Going crazy with Varnish and Symfony
 
Always on! Or not?
Always on! Or not?Always on! Or not?
Always on! Or not?
 
Drupal, varnish, esi - Toulouse November 2
Drupal, varnish, esi - Toulouse November 2Drupal, varnish, esi - Toulouse November 2
Drupal, varnish, esi - Toulouse November 2
 
A new way to develop with WordPress!
A new way to develop with WordPress!A new way to develop with WordPress!
A new way to develop with WordPress!
 
Advanced Web Hosting
Advanced Web HostingAdvanced Web Hosting
Advanced Web Hosting
 
BP-6 Repository Customization Best Practices
BP-6 Repository Customization Best PracticesBP-6 Repository Customization Best Practices
BP-6 Repository Customization Best Practices
 
Automatisation in development and testing - within budget
Automatisation in development and testing - within budgetAutomatisation in development and testing - within budget
Automatisation in development and testing - within budget
 
June8 presentation
June8 presentationJune8 presentation
June8 presentation
 
Web Application Defences
Web Application DefencesWeb Application Defences
Web Application Defences
 
Fix me if you can - DrupalCon prague
Fix me if you can - DrupalCon pragueFix me if you can - DrupalCon prague
Fix me if you can - DrupalCon prague
 
Масштабируемая конфигурация Nginx, Игорь Сысоев (Nginx)
Масштабируемая конфигурация Nginx, Игорь Сысоев (Nginx)Масштабируемая конфигурация Nginx, Игорь Сысоев (Nginx)
Масштабируемая конфигурация Nginx, Игорь Сысоев (Nginx)
 
Offline of web applications
Offline of web applicationsOffline of web applications
Offline of web applications
 
Offline for web - Frontend Dev Conf Minsk 2014
Offline for web - Frontend Dev Conf Minsk 2014Offline for web - Frontend Dev Conf Minsk 2014
Offline for web - Frontend Dev Conf Minsk 2014
 
My Opera meets Varnish, Dec 2009
My Opera meets Varnish, Dec 2009My Opera meets Varnish, Dec 2009
My Opera meets Varnish, Dec 2009
 
Caching and tuning fun for high scalability
Caching and tuning fun for high scalabilityCaching and tuning fun for high scalability
Caching and tuning fun for high scalability
 
Embulk, an open-source plugin-based parallel bulk data loader
Embulk, an open-source plugin-based parallel bulk data loaderEmbulk, an open-source plugin-based parallel bulk data loader
Embulk, an open-source plugin-based parallel bulk data loader
 

Kürzlich hochgeladen

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 

Kürzlich hochgeladen (20)

ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 

Varnish more than a cache

  • 1. 1   Varnish  –  More  than  a  cache   Bernd Löffeld Head of Platform Development Magic Internet GmbH Email: Bernd.Loeffeld@magicinternet.de Magic Internet entwickelt und betreut www.myvideo.de Deutschlands großes Videoportal!
  • 2. Varnish  Features   2   o  Caching   o  Loadbalancing  and  Backend-­‐Selec3on   o  Header  analysis  and  manipula3on   o  DSL  for  handling  all  that   o  Edge  Side  Includes  
  • 4. Varnish  Configura5on  Language  in  example   4   sub vcl_recv {! if (req.restarts == 0) {! if (req.http.x-forwarded-for) {! set req.http.X-Forwarded-For =! req.http.X-Forwarded-For + ", " + client.ip;! } else {! set req.http.X-Forwarded-For = client.ip;! }! }! if (req.request != "GET" &&! req.request != "HEAD" &&! req.request != "PUT" &&! req.request != "POST" &&! req.request != "TRACE" &&! req.request != "OPTIONS" &&! req.request != "DELETE") {! return (pipe);! }! if (req.request != "GET" && req.request != "HEAD") {! /* We only deal with GET and HEAD by default */! return (pass);! }! if (req.http.Authorization || req.http.Cookie) {! return (pass);! }! return (lookup);! }!
  • 5. The  Setup  –  A  vision  by  now   5  
  • 6. Start:  Just  a  simple  Web  Applica5on   6  
  • 7. Start:  Just  a  simple  Web  Applica5on   7  
  • 8. Step  1:  Ac5vate  the  cache   8  
  • 9. Step  1:  Ac5vate  the  cache   9   include "bwb/backends.vcl“; Varnish à /etc/varnish/main.vcl backend default { .host = "nginx-1"; .port = "80"; } Varnish à /etc/varnish/bwb/backends.vcl server { expires 1m; } nginx-1 à /etc/nginx/sites-available/bwb
  • 10. Step  1:  Ac5vate  the  cache   10  
  • 11. Step  2:  Introduce  new  Backend   11  
  • 12. Step  2:  Introduce  new  Backend   12   include "bwb/backends.vcl"; sub vcl_recv { if (req.url ~ "/fancy/") { set req.backend = fancy; } } Varnish à /etc/varnish/main.vcl backend default { .host = "nginx-1"; .port = "80"; } backend fancy { .host = "nginx-2"; .port = "80"; } Varnish à /etc/varnish/bwb/backends.vcl
  • 13. Step  2:  Introduce  new  Backend   13   <html> <head> <title>Legacy Web Application</title> <link href="/fancy/css/default.css" rel="stylesheet" type="text/css" media="all" /> </head> ... nginx-1 à /srv/www/bwb/page1.html
  • 14. Step  2:  Introduce  new  Backend   14  
  • 15. Step  2:  Introduce  new  Backend   15  
  • 16. Step  3:  Connect  the  Applica5ons  with  ESI   16  
  • 17. Step  3:  Connect  the  Applica5ons  with  ESI   17   <body> <!-- Old Navigation HTML was removed!--> <esi:include src="/fancy/nav/navigation.html" /> <h1>Just a robust and experienced application</h1> <div>Page 1 is mostly empty.</div> <esi:include src="/fancy/news/abox.html" /> </body> nginx-1 à /srv/www/bwb/page1.html include "bwb/backends.vcl"; sub vcl_recv { if (req.url ~ "/fancy/") { set req.backend = fancy; } } sub vcl_fetch { set beresp.do_esi = true; } Varnish à /etc/varnish/main.vcl
  • 18. Step  3:  Connect  the  Applica5ons  with  ESI   18   <div class="container newsbox"> <h1>News</h1> <div>really hot new stuff to read</div> </div> nginx-2 à /srv/www/bwb-fancy/fancy/news/abox.html server { ... location /fancy/news/ { expires 10s; } } nginx-2 à /etc/nginx/sites-available/bwb-fancy
  • 19. Step  3:  Connect  the  Applica5ons  with  ESI   19  
  • 20. Step  3:  Connect  the  Applica5ons  with  ESI   20  
  • 21. Step  4:  Simple  balancing  between  two  backends   21  
  • 22. Step  4:  Simple  balancing  between  two  backends   22   backend default { … } backend fancy_1 { .host = "nginx-2"; .port = "80"; } backend fancy_2 { .host = "nginx-3"; .port = "80"; } varnish à /etc/varnish/bwb/backends.vcl director fancy_round round-robin { { .backend = fancy_1; } { .backend = fancy_2; } } Varnish à /etc/varnish/bwb/director.vcl
  • 23. Step  4:  Simple  balancing  between  two  backends   23   include "bwb/backends.vcl"; include "bwb/director.vcl"; sub vcl_recv { if(req.url ~ "/fancy/") { set req.backend = fancy_round; } } varnish à /etc/varnish/main.vcl
  • 24. Step  4:  Simple  balancing  between  two  backends   24   192.168.56.5 - - [28/Sep/2013:19:51:57 +0200] "GET /fancy/news/abox.html HTTP/1.1" 200 100 “ 192.168.56.5 - - [28/Sep/2013:19:52:28 +0200] "GET /fancy/news/abox.html HTTP/1.1" 200 100 “ 192.168.56.5 - - [28/Sep/2013:19:52:51 +0200] "GET /fancy/news/abox.html HTTP/1.1" 200 100 “ 192.168.56.5 - - [28/Sep/2013:19:53:17 +0200] "GET /fancy/news/abox.html HTTP/1.1" 200 100 access-log nginx-1 192.168.56.5 - - [28/Sep/2013:19:52:14 +0200] "GET /fancy/news/abox.html HTTP/1.1" 200 100 “ 192.168.56.5 - - [28/Sep/2013:19:52:39 +0200] "GET /fancy/news/abox.html HTTP/1.1" 200 100 “ 192.168.56.5 - - [28/Sep/2013:19:53:05 +0200] "GET /fancy/news/abox.html HTTP/1.1" 200 100 “ 192.168.56.5 - - [28/Sep/2013:19:53:31 +0200] "GET /fancy/news/abox.html HTTP/1.1" 200 100 access-log nginx-2
  • 25. Want  to  know  more?   25   Bernd.Loeffeld@magicinternet.de   hCp://www.myvideo.de/karriere   Work  with  us!   o  Architect   o  Developer   o  Sysadmin