Suche senden
Hochladen
Web-Performance-Optimierung mit varnish
•
0 gefällt mir
•
434 views
SpeedPartner GmbH
Folgen
Date: 2013-05-25 Location: Berlin, Germany Event: LinuxTag 2013
Weniger lesen
Mehr lesen
Melden
Teilen
Melden
Teilen
1 von 25
Jetzt herunterladen
Downloaden Sie, um offline zu lesen
Empfohlen
Web-Performance-Optimierung mit varnish
Web-Performance-Optimierung mit varnish
SpeedPartner GmbH
Performance durch Caching
Performance durch Caching
AOE
Campixx 2012-ladezeit-extreme
Campixx 2012-ladezeit-extreme
Alexander Merkel
Tipps zur Performanceoptimierung für Liferay Portal
Tipps zur Performanceoptimierung für Liferay Portal
Stefan Hilpp
Query Result Caching
Query Result Caching
Cenarion Information Systems GmbH
XPages: Performance-Optimierung - Ulrich Krause (eknori) SNoUG 2013
XPages: Performance-Optimierung - Ulrich Krause (eknori) SNoUG 2013
BCC - Solutions for IBM Collaboration Software
Skalieren von Rails Anwendungen mit Amazon S3 und EC2
Skalieren von Rails Anwendungen mit Amazon S3 und EC2
Jonathan Weiss
Serverprovisioning in einer dynamischen Infrastruktur
Serverprovisioning in einer dynamischen Infrastruktur
inovex GmbH
Empfohlen
Web-Performance-Optimierung mit varnish
Web-Performance-Optimierung mit varnish
SpeedPartner GmbH
Performance durch Caching
Performance durch Caching
AOE
Campixx 2012-ladezeit-extreme
Campixx 2012-ladezeit-extreme
Alexander Merkel
Tipps zur Performanceoptimierung für Liferay Portal
Tipps zur Performanceoptimierung für Liferay Portal
Stefan Hilpp
Query Result Caching
Query Result Caching
Cenarion Information Systems GmbH
XPages: Performance-Optimierung - Ulrich Krause (eknori) SNoUG 2013
XPages: Performance-Optimierung - Ulrich Krause (eknori) SNoUG 2013
BCC - Solutions for IBM Collaboration Software
Skalieren von Rails Anwendungen mit Amazon S3 und EC2
Skalieren von Rails Anwendungen mit Amazon S3 und EC2
Jonathan Weiss
Serverprovisioning in einer dynamischen Infrastruktur
Serverprovisioning in einer dynamischen Infrastruktur
inovex GmbH
GWAVACon 2015: SEP - Backuplösungen auf dem Prüfstand
GWAVACon 2015: SEP - Backuplösungen auf dem Prüfstand
GWAVA
JAX 2015 - Continuous Integration mit Java & Javascript
JAX 2015 - Continuous Integration mit Java & Javascript
dzuvic
Web Performance Optimierung (WPO)
Web Performance Optimierung (WPO)
Martin Kliehm
MySQL Backup
MySQL Backup
FromDual GmbH
Einführung in Puppet und Vagrant
Einführung in Puppet und Vagrant
s0enke
NoSQL with MySQL
NoSQL with MySQL
FromDual GmbH
GUUG Hamburg OpenNebula
GUUG Hamburg OpenNebula
Martin Alfke
MySQL Backup/Recovery
MySQL Backup/Recovery
FromDual GmbH
Services Provided by PMI & Pune Chapter
Services Provided by PMI & Pune Chapter
Rahul Sudame
Event Aarhus 6.5.15 Knud Schulz
Event Aarhus 6.5.15 Knud Schulz
Until June 2017 Citizens' Service & Libraries, Main Library Aarhus, Denmark
Empleoandarax3.0
Empleoandarax3.0
Guadalinfo Pechina
Rocker camber
Rocker camber
chope1969
Exodo
Exodo
Ruddy Palma
Lugares e identidades locales
Lugares e identidades locales
Gise Garcia
Periodico oficial
Periodico oficial
Supervision Escolar Estatal
Diapositivas
Diapositivas
Ritzy Peralta Ubillus
Action Screen Print & Embroidery Holiday Corporate Gifts
Action Screen Print & Embroidery Holiday Corporate Gifts
Tom Thornton
Grails y EC2 - De cero a multinacional
Grails y EC2 - De cero a multinacional
Gailen Tecnologías
Listado de hipermercados en rusia
Listado de hipermercados en rusia
Cadex Comercio Internacional, S.L.
Politiedatamining met datadetective
Politiedatamining met datadetective
Frank Smilda
[DE] "Bye-bye management!", Vortrag mit Niels Pfläging beim Marketing-Club Lü...
[DE] "Bye-bye management!", Vortrag mit Niels Pfläging beim Marketing-Club Lü...
Niels Pflaeging
Photomaths2
Photomaths2
Monika Schwarze
Weitere ähnliche Inhalte
Was ist angesagt?
GWAVACon 2015: SEP - Backuplösungen auf dem Prüfstand
GWAVACon 2015: SEP - Backuplösungen auf dem Prüfstand
GWAVA
JAX 2015 - Continuous Integration mit Java & Javascript
JAX 2015 - Continuous Integration mit Java & Javascript
dzuvic
Web Performance Optimierung (WPO)
Web Performance Optimierung (WPO)
Martin Kliehm
MySQL Backup
MySQL Backup
FromDual GmbH
Einführung in Puppet und Vagrant
Einführung in Puppet und Vagrant
s0enke
NoSQL with MySQL
NoSQL with MySQL
FromDual GmbH
GUUG Hamburg OpenNebula
GUUG Hamburg OpenNebula
Martin Alfke
MySQL Backup/Recovery
MySQL Backup/Recovery
FromDual GmbH
Was ist angesagt?
(8)
GWAVACon 2015: SEP - Backuplösungen auf dem Prüfstand
GWAVACon 2015: SEP - Backuplösungen auf dem Prüfstand
JAX 2015 - Continuous Integration mit Java & Javascript
JAX 2015 - Continuous Integration mit Java & Javascript
Web Performance Optimierung (WPO)
Web Performance Optimierung (WPO)
MySQL Backup
MySQL Backup
Einführung in Puppet und Vagrant
Einführung in Puppet und Vagrant
NoSQL with MySQL
NoSQL with MySQL
GUUG Hamburg OpenNebula
GUUG Hamburg OpenNebula
MySQL Backup/Recovery
MySQL Backup/Recovery
Andere mochten auch
Services Provided by PMI & Pune Chapter
Services Provided by PMI & Pune Chapter
Rahul Sudame
Event Aarhus 6.5.15 Knud Schulz
Event Aarhus 6.5.15 Knud Schulz
Until June 2017 Citizens' Service & Libraries, Main Library Aarhus, Denmark
Empleoandarax3.0
Empleoandarax3.0
Guadalinfo Pechina
Rocker camber
Rocker camber
chope1969
Exodo
Exodo
Ruddy Palma
Lugares e identidades locales
Lugares e identidades locales
Gise Garcia
Periodico oficial
Periodico oficial
Supervision Escolar Estatal
Diapositivas
Diapositivas
Ritzy Peralta Ubillus
Action Screen Print & Embroidery Holiday Corporate Gifts
Action Screen Print & Embroidery Holiday Corporate Gifts
Tom Thornton
Grails y EC2 - De cero a multinacional
Grails y EC2 - De cero a multinacional
Gailen Tecnologías
Listado de hipermercados en rusia
Listado de hipermercados en rusia
Cadex Comercio Internacional, S.L.
Politiedatamining met datadetective
Politiedatamining met datadetective
Frank Smilda
[DE] "Bye-bye management!", Vortrag mit Niels Pfläging beim Marketing-Club Lü...
[DE] "Bye-bye management!", Vortrag mit Niels Pfläging beim Marketing-Club Lü...
Niels Pflaeging
Photomaths2
Photomaths2
Monika Schwarze
Juan manuel 2 trabajo en equipo
Juan manuel 2 trabajo en equipo
DamaraGlez
GreenIT BB Award 2012 - BB Think Tank - Summit
GreenIT BB Award 2012 - BB Think Tank - Summit
Netzwerk GreenIT-BB
Revelate
Revelate
Alberto Ferreras
Catalogo Larome perfumes - maisperfumes.com
Catalogo Larome perfumes - maisperfumes.com
Mais Perfumes
Improving the Unifier User Experience
Improving the Unifier User Experience
p6academy
Geoconsult presentation
Geoconsult presentation
Inc Group
Andere mochten auch
(20)
Services Provided by PMI & Pune Chapter
Services Provided by PMI & Pune Chapter
Event Aarhus 6.5.15 Knud Schulz
Event Aarhus 6.5.15 Knud Schulz
Empleoandarax3.0
Empleoandarax3.0
Rocker camber
Rocker camber
Exodo
Exodo
Lugares e identidades locales
Lugares e identidades locales
Periodico oficial
Periodico oficial
Diapositivas
Diapositivas
Action Screen Print & Embroidery Holiday Corporate Gifts
Action Screen Print & Embroidery Holiday Corporate Gifts
Grails y EC2 - De cero a multinacional
Grails y EC2 - De cero a multinacional
Listado de hipermercados en rusia
Listado de hipermercados en rusia
Politiedatamining met datadetective
Politiedatamining met datadetective
[DE] "Bye-bye management!", Vortrag mit Niels Pfläging beim Marketing-Club Lü...
[DE] "Bye-bye management!", Vortrag mit Niels Pfläging beim Marketing-Club Lü...
Photomaths2
Photomaths2
Juan manuel 2 trabajo en equipo
Juan manuel 2 trabajo en equipo
GreenIT BB Award 2012 - BB Think Tank - Summit
GreenIT BB Award 2012 - BB Think Tank - Summit
Revelate
Revelate
Catalogo Larome perfumes - maisperfumes.com
Catalogo Larome perfumes - maisperfumes.com
Improving the Unifier User Experience
Improving the Unifier User Experience
Geoconsult presentation
Geoconsult presentation
Ähnlich wie Web-Performance-Optimierung mit varnish
SEO Day 2016: Perfekte Ladezeiten und SEO-Hosting für Speed-Freaks
SEO Day 2016: Perfekte Ladezeiten und SEO-Hosting für Speed-Freaks
SEARCH ONE
Nginx
Nginx
dorn&malag
OpenTuesday: Jede Sekunde zählt - Webbeschleuniger Varnish im Einsatz
OpenTuesday: Jede Sekunde zählt - Webbeschleuniger Varnish im Einsatz
Digicomp Academy AG
Deployment mit Webistrano
Deployment mit Webistrano
daniel.mattes
Performance durch Caching
Performance durch Caching
AOE
Typo3 und Varnish
Typo3 und Varnish
Oliver Thiele
DBSAT – Die Oracle DATENBANK bzgl. PII Daten analysieren
DBSAT – Die Oracle DATENBANK bzgl. PII Daten analysieren
Gunther Pippèrr
JavaScript Performance
JavaScript Performance
Sebastian Springer
Cloud Deployment und (Auto)Scaling am Beispiel von Angrybird
Cloud Deployment und (Auto)Scaling am Beispiel von Angrybird
AOE
Monitoring von SAP mit check_sap_health
Monitoring von SAP mit check_sap_health
Gerhard Lausser
Überblick: 18c und Autonomous Data Warehouse Cloud (ADWC)
Überblick: 18c und Autonomous Data Warehouse Cloud (ADWC)
Ulrike Schwinn
Monitoring Openstack - LinuxTag 2013
Monitoring Openstack - LinuxTag 2013
NETWAYS
Performance durch Caching
Performance durch Caching
AOE
Performance durch Caching
Performance durch Caching
AOE
Top 10 Internet Trends 2003
Top 10 Internet Trends 2003
Jürg Stuker
HTML5 Storage
HTML5 Storage
adesso AG
Oracle WebLogic for DevOps
Oracle WebLogic for DevOps
Andreas Koop
Oracle WebLogic for DevOps
Oracle WebLogic for DevOps
enpit GmbH & Co. KG
Java oberflächlich betrachtet - Welche GUI ist die richtige?
Java oberflächlich betrachtet - Welche GUI ist die richtige?
GFU Cyrus AG
Icsug conf 14_tipps-und-skripts-fuer-ibm-connections-administratoren
Icsug conf 14_tipps-und-skripts-fuer-ibm-connections-administratoren
ICS User Group
Ähnlich wie Web-Performance-Optimierung mit varnish
(20)
SEO Day 2016: Perfekte Ladezeiten und SEO-Hosting für Speed-Freaks
SEO Day 2016: Perfekte Ladezeiten und SEO-Hosting für Speed-Freaks
Nginx
Nginx
OpenTuesday: Jede Sekunde zählt - Webbeschleuniger Varnish im Einsatz
OpenTuesday: Jede Sekunde zählt - Webbeschleuniger Varnish im Einsatz
Deployment mit Webistrano
Deployment mit Webistrano
Performance durch Caching
Performance durch Caching
Typo3 und Varnish
Typo3 und Varnish
DBSAT – Die Oracle DATENBANK bzgl. PII Daten analysieren
DBSAT – Die Oracle DATENBANK bzgl. PII Daten analysieren
JavaScript Performance
JavaScript Performance
Cloud Deployment und (Auto)Scaling am Beispiel von Angrybird
Cloud Deployment und (Auto)Scaling am Beispiel von Angrybird
Monitoring von SAP mit check_sap_health
Monitoring von SAP mit check_sap_health
Überblick: 18c und Autonomous Data Warehouse Cloud (ADWC)
Überblick: 18c und Autonomous Data Warehouse Cloud (ADWC)
Monitoring Openstack - LinuxTag 2013
Monitoring Openstack - LinuxTag 2013
Performance durch Caching
Performance durch Caching
Performance durch Caching
Performance durch Caching
Top 10 Internet Trends 2003
Top 10 Internet Trends 2003
HTML5 Storage
HTML5 Storage
Oracle WebLogic for DevOps
Oracle WebLogic for DevOps
Oracle WebLogic for DevOps
Oracle WebLogic for DevOps
Java oberflächlich betrachtet - Welche GUI ist die richtige?
Java oberflächlich betrachtet - Welche GUI ist die richtige?
Icsug conf 14_tipps-und-skripts-fuer-ibm-connections-administratoren
Icsug conf 14_tipps-und-skripts-fuer-ibm-connections-administratoren
Mehr von SpeedPartner GmbH
Extbase/Fluid: Kennenlernen und ausprobieren
Extbase/Fluid: Kennenlernen und ausprobieren
SpeedPartner GmbH
Professional reports with SVG
Professional reports with SVG
SpeedPartner GmbH
Secure PHP environment
Secure PHP environment
SpeedPartner GmbH
XUL - The future of user-interfaces on the web
XUL - The future of user-interfaces on the web
SpeedPartner GmbH
PHP-Applikationen mit PEAR
PHP-Applikationen mit PEAR
SpeedPartner GmbH
PHP-Entwicklung mit PEAR
PHP-Entwicklung mit PEAR
SpeedPartner GmbH
Websockets: Leichtgewichtige Verbindungen für Web-Applikationen
Websockets: Leichtgewichtige Verbindungen für Web-Applikationen
SpeedPartner GmbH
System-Management-Trio: Zentrale Verwaltung mit facter, puppet und augeas
System-Management-Trio: Zentrale Verwaltung mit facter, puppet und augeas
SpeedPartner GmbH
News from PEAR
News from PEAR
SpeedPartner GmbH
PEAR - An introduction
PEAR - An introduction
SpeedPartner GmbH
Suchmaschinen-Optimierung
Suchmaschinen-Optimierung
SpeedPartner GmbH
.EU – eine neue Top-Level-Domain
.EU – eine neue Top-Level-Domain
SpeedPartner GmbH
Leben und Arbeiten in einer Community
Leben und Arbeiten in einer Community
SpeedPartner GmbH
System-Management-Trio: Zentrale Verwaltung mit facter, puppet und augeas
System-Management-Trio: Zentrale Verwaltung mit facter, puppet und augeas
SpeedPartner GmbH
Sicherer Wegweiser im Internet: DNSSEC im praktischen Einsatz
Sicherer Wegweiser im Internet: DNSSEC im praktischen Einsatz
SpeedPartner GmbH
System-Management-Trio: Zentrale Verwaltung mit facter, puppet und augeas
System-Management-Trio: Zentrale Verwaltung mit facter, puppet und augeas
SpeedPartner GmbH
System-Management-Trio: Zentrale Verwaltung mit facter, puppet und augeas
System-Management-Trio: Zentrale Verwaltung mit facter, puppet und augeas
SpeedPartner GmbH
Sicherer Wegweiser im Internet: DNSSEC im praktischen Einsatz
Sicherer Wegweiser im Internet: DNSSEC im praktischen Einsatz
SpeedPartner GmbH
Deploying IPv6 - planning, common pitfalls and security-considerations
Deploying IPv6 - planning, common pitfalls and security-considerations
SpeedPartner GmbH
Explanation of the TYPO3 Integrator Certification
Explanation of the TYPO3 Integrator Certification
SpeedPartner GmbH
Mehr von SpeedPartner GmbH
(20)
Extbase/Fluid: Kennenlernen und ausprobieren
Extbase/Fluid: Kennenlernen und ausprobieren
Professional reports with SVG
Professional reports with SVG
Secure PHP environment
Secure PHP environment
XUL - The future of user-interfaces on the web
XUL - The future of user-interfaces on the web
PHP-Applikationen mit PEAR
PHP-Applikationen mit PEAR
PHP-Entwicklung mit PEAR
PHP-Entwicklung mit PEAR
Websockets: Leichtgewichtige Verbindungen für Web-Applikationen
Websockets: Leichtgewichtige Verbindungen für Web-Applikationen
System-Management-Trio: Zentrale Verwaltung mit facter, puppet und augeas
System-Management-Trio: Zentrale Verwaltung mit facter, puppet und augeas
News from PEAR
News from PEAR
PEAR - An introduction
PEAR - An introduction
Suchmaschinen-Optimierung
Suchmaschinen-Optimierung
.EU – eine neue Top-Level-Domain
.EU – eine neue Top-Level-Domain
Leben und Arbeiten in einer Community
Leben und Arbeiten in einer Community
System-Management-Trio: Zentrale Verwaltung mit facter, puppet und augeas
System-Management-Trio: Zentrale Verwaltung mit facter, puppet und augeas
Sicherer Wegweiser im Internet: DNSSEC im praktischen Einsatz
Sicherer Wegweiser im Internet: DNSSEC im praktischen Einsatz
System-Management-Trio: Zentrale Verwaltung mit facter, puppet und augeas
System-Management-Trio: Zentrale Verwaltung mit facter, puppet und augeas
System-Management-Trio: Zentrale Verwaltung mit facter, puppet und augeas
System-Management-Trio: Zentrale Verwaltung mit facter, puppet und augeas
Sicherer Wegweiser im Internet: DNSSEC im praktischen Einsatz
Sicherer Wegweiser im Internet: DNSSEC im praktischen Einsatz
Deploying IPv6 - planning, common pitfalls and security-considerations
Deploying IPv6 - planning, common pitfalls and security-considerations
Explanation of the TYPO3 Integrator Certification
Explanation of the TYPO3 Integrator Certification
Web-Performance-Optimierung mit varnish
1.
Web-Performance-Optimierung mit varnish LinuxTag
2013, 25.05.2013 Seite: 1 / 25© SpeedPartner GmbH Web-Performance- Optimierung mit varnish
2.
Web-Performance-Optimierung mit varnish LinuxTag
2013, 25.05.2013 Seite: 2 / 25© SpeedPartner GmbH Über den Vortrag Aufbau / Ziele: ● Einführung / Überblick ● Varnish-Tools (Administration, Logging und Statistik) ● Konfigurationssprache ● Konfigurationsbeispiele aus der Praxis ● Edge-Side-Includes ● TYPO3: Automatische Löschung Varnish-Cache bei Änderungen ● Links / Hilfen
3.
Web-Performance-Optimierung mit varnish LinuxTag
2013, 25.05.2013 Seite: 3 / 25© SpeedPartner GmbH Über mich ● Stefan Neufeind ● Mit-Geschäftsführer der SpeedPartner GmbH aus Neuss ein Internet-Service-Provider (ISP) ● Individuelle TYPO3-Entwicklungen ● Hosting, Housing, Managed Services ● Domains / Domain-Services ● IPv6, DNSSEC, ... ● Aktive Mitarbeit im Community-Umfeld (PHP/PEAR, TYPO3, Linux) ● Freier Autor für z.B. t3n, iX, video2brain, ...
4.
Web-Performance-Optimierung mit varnish LinuxTag
2013, 25.05.2013 Seite: 4 / 25© SpeedPartner GmbH Ablauf http-Anfragen Klassischer Fall für eine direkte http-Anfrage Client sendet Anfragen an einen/mehrere Server ... ... welche diese individuell (!) bearbeiten und beantworten
5.
Web-Performance-Optimierung mit varnish LinuxTag
2013, 25.05.2013 Seite: 5 / 25© SpeedPartner GmbH Ablauf http-Anfragen Client sendet Anfragen an einen / mehrere Proxies ... ... welche diese nach Regeln ● selbst beantworten ● weiterleiten ● bearbeiten ● zwischenspeichern Eine http-Anfrage per Proxy
6.
Web-Performance-Optimierung mit varnish LinuxTag
2013, 25.05.2013 Seite: 6 / 25© SpeedPartner GmbH Arten von Web-Proxies Web-Proxy in Client-Nähe bzw. „im Netz“: ● Zwischenspeicherung (Cache) ● Authentifizierung ● Filterung ● Zugriffssteuerung ● „Werbefilter“ ● Virenscanning ● SSL-Terminierung: Ermöglichen von Prüfung verschlüsselter Inhalte Web-Proxy in Server-Nähe: ● Zwischenspeicherung (Cache) ● Entlastung Server ● Client-Verbindungen (z.B. Keepalives) ● Selbständige Bearbeitung von Anfragen aus dem Cache ● Vermeidung gleichartiger paralleler Anfragen an die Webserver ● Verteilung über mehrere Server ● Round-Robin, Random, ... ● In Abhängigkeit von Anfragen (URL, Cookies, Client-IP, ...) ● Bearbeitung der Anfragen ● Bearbeitung der Antworten ● z.B. Edge-Side-Includes ● SSL-Terminierung z.B. Squid („leistungsstarker Klassiker“) z.B. Varnish (optimiert als Reverseproxy) Nicht als direkter Teil von Varnish!
7.
Web-Performance-Optimierung mit varnish LinuxTag
2013, 25.05.2013 Seite: 7 / 25© SpeedPartner GmbH Varnish als Reverse-Proxy Stärken von Varnish: ● Konzeptioniert als Reverseproxy ● Optimiert auf Durchsatz / Last ● Minimalistischer, fokusierter Funktionsumfang ● Flexible Konfiguration / komplexe Regelwerke möglich ● Aktive, selektive Cache-Leerung durch Applikationen möglich ● Erlaubt bei Änderungen Erneuerung bestimmter Inhalte anhand URLs, Header-Zeilen, ... ● Zusammenstellen von Antworten aus Teilen (Edge-Side-Includes [ESI])
8.
Web-Performance-Optimierung mit varnish LinuxTag
2013, 25.05.2013 Seite: 8 / 25© SpeedPartner GmbH Konfiguration / Regeln Konfiguration per Varnish Configuration Language (VCL): ● Regelbasierte Bearbeitung von Anfragen ● Domain-spezifische Sprache statt reiner „Konfiguration“ ● Interne Übersetzung in Binärcode für optimierte Bearbeitung von Anfragen ● Arbeit mit Objekten und deren Eigenschaften: ● Anfrage, Antwort, Cache-Objekt ● Zeilenweise Ausführung von Bedingungen / Zuweisungen ● Aufgeteilt in Subroutinen für die verschiedenen Phasen einer Bearbeitung ● Standard-Logik je Subroutine, falls nicht anders definiert oder falls kein Rücksprung vor Ende der Subroutine erfolgt backend default { .host = "127.0.0.1"; .port = "8080"; } Minimales Konfigurationsbeispiel:
9.
Web-Performance-Optimierung mit varnish LinuxTag
2013, 25.05.2013 Seite: 9 / 25© SpeedPartner GmbH Konfiguration / Regeln Basis-Verlauf einer Anfrage in VCL: Anfrage Eingang Anfrage fertig vcl_recv vcl_pass vcl_fetch vcl_deliver vcl_hit vcl_miss vcl_pipe pass pipe vcl_hash lookup miss hit vcl_error Restart Error fetch pass deliver deliver = häufig verwendet
10.
Web-Performance-Optimierung mit varnish LinuxTag
2013, 25.05.2013 Seite: 10 / 25© SpeedPartner GmbH Konfigurationsbeispiele aus der Praxis Unterschiedliche Backends je Inhalt + nicht cachebare Inhalte: ● Backends definieren und Regeln für Anfrage / Antwort auswerten backend default { .host = "127.0.0.1"; .port = "82"; } backend static { .host = "127.0.0.1"; .port = "81"; } sub vcl_recv { if (req.http.host == "dev.example.com") { set req.backend = default; return (pass); } if (req.url ~ "^/[^?]+.(jpeg|jpg|png|gif|js|css)$") { set req.backend = static; } else { set req.backend = default; } } sub vcl_fetch { if (req.http.host == "dev.example.com") { set obj.cacheable = false; return (pass); } ... weitere Bedingungen ... if (!obj.cacheable) { set obj.http.X-Cacheable = "not cacheable"; return (pass); } else { set obj.http.X-Cacheable = "yes"; return (deliver); } } vcl_recv = direkt nach Eingang der Anfrage vcl_fetch = nach Abholen eines Inhalts vom Backend (nicht gecached) req = Request-Objekt (Anfrage) obj = Cache-Objekt (Inhalt) Dev hier bewusst nicht gecached
11.
Web-Performance-Optimierung mit varnish LinuxTag
2013, 25.05.2013 Seite: 11 / 25© SpeedPartner GmbH Konfigurationsbeispiele aus der Praxis Anfragen „bereinigen“: ● Nicht cache-relevante Teile einer Anfrage entfernen (1/2) sub vcl_recv { # Google Analytics Cookies entfernen set req.http.cookie = regsub(req.http.cookie,"__utma=[^;]*;?( |$)",""); set req.http.cookie = regsub(req.http.cookie,"__utmb=[^;]*;?( |$)",""); set req.http.cookie = regsub(req.http.cookie,"__utmc=[^;]*;?( |$)",""); set req.http.cookie = regsub(req.http.cookie,"__utmz=[^;]*;?( |$)",""); # alternativ: alle Cookies ausser zwei ... set req.http.Cookie = ";" req.http.Cookie; set req.http.Cookie = regsuball(req.http.Cookie, "; +", ";"); set req.http.Cookie = regsuball(req.http.Cookie, ";(PHPSESSID|fe_typo_user)=", "; 1="); set req.http.Cookie = regsuball(req.http.Cookie, ";[^ ][^;]*", ""); set req.http.Cookie = regsuball(req.http.Cookie, "^[; ]+|[; ]+$", ""); ... weitere Regeln ... # Remove the cookie header if it's empty after cleanup if (req.http.cookie ~ "^ *$") { remove req.http.cookie; }
12.
Web-Performance-Optimierung mit varnish LinuxTag
2013, 25.05.2013 Seite: 12 / 25© SpeedPartner GmbH Konfigurationsbeispiele aus der Praxis Anfragen „bereinigen“: ● Nicht cache-relevante Teile einer Anfrage entfernen (2/2) # Remove cookies and query string for real static files if (req.url ~ "^/[^?]+.(jpeg|jpg|png|gif|ico|js|css|txt|gz|zip|lzma|bz2|tgz|tbz|swf|f4v)(?.*|)$") { remove req.http.cookie; set req.url = regsub(req.url, "?.*$", ""); } # Normalize Content-Encoding if (req.http.Accept-Encoding) { if (req.url ~ ".(jpg|png|gif|gz|tgz|bz2|lzma|tbz)(?.*|)$") { remove req.http.Accept-Encoding; } elsif (req.http.Accept-Encoding ~ "gzip") { set req.http.Accept-Encoding = "gzip"; } elsif (req.http.Accept-Encoding ~ "deflate") { set req.http.Accept-Encoding = "deflate"; } else { remove req.http.Accept-Encoding; } } }
13.
Web-Performance-Optimierung mit varnish LinuxTag
2013, 25.05.2013 Seite: 13 / 25© SpeedPartner GmbH Konfigurationsbeispiele aus der Praxis Cache-Zeiten in Varnish abweichend von Angaben für Client setzen: sub vcl_fetch { if (beresp.cacheable) { /* Expires (absolute Zeitangabe) entfernen */ unset beresp.http.expires; /* Stattdessen relative Gültigkeit setzen */ set beresp.http.cache-control = "max-age=900"; /* Haltezeit in Varnish */ set beresp.ttl = 1w; /* Marker für Verarbeitung in vcl_deliver */ set beresp.http.magicmarker = "1"; } } sub vcl_deliver { if (resp.http.magicmarker) { /* Marker entfernen */ unset resp.http.magicmarker; /* Bei Abruf durch den Client ist das Objekt immer „frisch“ */ set resp.http.age = "0"; } } Quelle: https://www.varnish-cache.org/trac/wiki/VCLExampleLongerCaching Objekt vom Backend geholt; zur Ablage im Cache beresp = Backend-Response Objekt zur Auslieferung; vom Backend oder aus dem Cache resp = Response zum Client
14.
Web-Performance-Optimierung mit varnish LinuxTag
2013, 25.05.2013 Seite: 14 / 25© SpeedPartner GmbH Konfigurationsbeispiele aus der Praxis Selektive Cache-Löschung: ● Möglichkeit 1: per Varnish-Admin-Port ● z.B. mittels Hilfsmittel „varnishadm“ ● Authentifizierung über einen „shared secret“ ● Verwendet eine TCP-Klartext-Verbindung für die Kommandos (zzgl. Authentifizierung) # einzelne Seite varnishadm -T 127.0.0.1:6082 -S /etc/varnish/secret ban.url ^/kontakt.htm$ # ganzes Verzeichnis und nur bestimmer Hostname varnishadm -T 127.0.0.1:6082 -S /etc/varnish/secret "ban req.url ~ ^/somedirectory/ && req.http.host == www.example.com“ Varnish 2.x: purge Varnish 3.x: ban
15.
Web-Performance-Optimierung mit varnish LinuxTag
2013, 25.05.2013 Seite: 15 / 25© SpeedPartner GmbH Konfigurationsbeispiele aus der Praxis Selektive Cache-Löschung: ● Möglichkeit 2: Verwendung von http-Headerzeilen in Antworten sowie VCL ● Verwendung für Tagging von Seiten ● Verwendung für tag-basierte Cache-Löschung durch http-Antwort und etwas VCL <?php header('x-invalidated-by: tag-a,tag-b', false); header('cache-control: s-maxage=86400'); // ... reguläre Ausgaben ... <?php header('x-invalidates: tag-a', false); // ... reguläre Ausgaben ... sub vcl_fetch { if (beresp.status >= 200 && beresp.status < 400 && (req.request == "PUT" || req.request == "POST" || req.request == "DELETE")) { ban("obj.http.x-invalidated-by ~ " + beresp.http.x-invalidates); } } Tags setzen In Antwort Cache- Lösung triggern, z.B. per Formular mit POST VCL In Anlehnung an: http://blog.kevburnsjr.com/tagged-cache-invalidation
16.
Web-Performance-Optimierung mit varnish LinuxTag
2013, 25.05.2013 Seite: 16 / 25© SpeedPartner GmbH Anfrage mit selbst gewähltem Typ an varnish schicken Konfigurationsbeispiele aus der Praxis Selektive Cache-Löschung: ● Möglichkeit 3: Verwendung von http-Requests sowie VCL ... acl purge_acl { "localhost"; "192.168.1.1"; } sub vcl_recv { if(req.request == "PURGE") { if(!client.ip ~ purge_acl) { error 405 "Not allowed"; } else { ban_url(req.url); error 200 "Purged"; } } } <?php $curl = curl_init("http://www.example.com/pageToPurge"); curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "PURGE"); curl_exec($curl); PURGE nur von bestimmten Clients zulassen Request-Typ beliebig, jedoch ist PURGE „üblich“ Angefragte URL clearen. Evtl. auch Hostname, Wildcards oder zusätzliche Header berücksichtigen
17.
Web-Performance-Optimierung mit varnish LinuxTag
2013, 25.05.2013 Seite: 17 / 25© SpeedPartner GmbH Monitoring, Logging, Statistiken Varnish-Logdaten: ● Logging erfolgt in einen shared-memory-Bereich ● Zugriff per Tool „varnishlog“ ● Daemon-Betrieb möglich, welcher dann binäre Logdateien zur späteren Auswertung schreibt ● Logdaten für Kommunikation varnish mit Backend und / oder Client ● Durch shared-memory auch zeitgleicher Zugriff mehrerer Tools auf Livedaten möglich
18.
Web-Performance-Optimierung mit varnish LinuxTag
2013, 25.05.2013 Seite: 18 / 25© SpeedPartner GmbH Monitoring, Logging, Statistiken Varnish-Boardmittel für Logging und Statistiken: (1/2) ● varnishlog ● Anzeige oder binäres Logging ● für alle Anfrage- und Antwort-Header ● zu Backend und / oder Client ● Varnishncsa ● Logging in NCSA-/Apache-kompatiblem Text-Format ● Kann z.B. für klassische Besucherstatistik- Werkzeuge o.ä. Verwendet werden ● varnishtop ● Auswertung Headerdaten nach Häufigkeit (häufigste URLs, Anfragetypen, Client- oder Backend-Merkmale, ...)
19.
Web-Performance-Optimierung mit varnish LinuxTag
2013, 25.05.2013 Seite: 19 / 25© SpeedPartner GmbH Monitoring, Logging, Statistiken Varnish-Boardmittel für Logging und Statistiken: (2/2) ● varnishhist ● Histogram-Darstellung ● Verteilung Anfragen (Y-Achse) nach Antwortzeit (X-Achse, logarithmisch) ● Pipe-Symbol: gecachte Anfrage, Raute: Backend-Anfrage ● varnishstat ● Statistische Auswertung verschiedener Kriterien, insb. Auch Cache-Hit-Ratio
20.
Web-Performance-Optimierung mit varnish LinuxTag
2013, 25.05.2013 Seite: 20 / 25© SpeedPartner GmbH Edge-Side-Includes (ESI) Einbindung von Blöcken: ● Cachen von Antworten mit speziellen ESI-Tags ● separat cachebar ● Auswertung von Einbindungs-Anweisungen durch varnish ● Client erhält Antwort inkl. Ersetzungen ● Ersetzungen müssen in Varnish aktiviert werden (per VCL) <esi:include src="/?id=51&type=978& key=INT_SCRIPT.e6e3f4bc683c3ff8f57f2f46ab 8f9a80&identifier=87b909c18277ab58a6006d2b 7d96e5df&from_varnish=1" /> sub vcl_fetch { #Respect force-reload if (req.http.Cache-Control ~ "no-cache") { set beresp.ttl = 0s; #Make sure ESI includes are processed! set beresp.do_esi = true; return (deliver); } //Force cache for 5 seconds for ESI responses if (obj.http.X-ESI-RESPONSE) { set obj.ttl = 0s; } else { set obj.ttl = 24h; } return (deliver); }varnish 2.1: esi;
21.
Web-Performance-Optimierung mit varnish LinuxTag
2013, 25.05.2013 Seite: 21 / 25© SpeedPartner GmbH TYPO3: Cache-Löschung bei Änderungen TYPO3-Extension „MOC Varnish“: ● Rüstet varnish-Unterstützung mit einfachen Mitteln nach ● automatischen PURGE-Requests bei Änderungen → Änderungen trotz langer Cache-Haltezeiten zeitnah sichtbar ● automatische Umwandlung von USER_INT-Objekten (per Definition nicht cachebar) in ESI-Statements → Cachung umgebender Seiten
22.
Web-Performance-Optimierung mit varnish LinuxTag
2013, 25.05.2013 Seite: 22 / 25© SpeedPartner GmbH TYPO3: Cache-Löschung bei Änderungen TYPO3-Extension „MOC Varnish“: ● automatischen PURGE-Requests bei Änderungen ● Bei Änderung an Inhalt Cache der Seite erneuern ● Bei Änderung an Seite wegen Navigation Aktualisierung dieser und anderer Seiten
23.
Web-Performance-Optimierung mit varnish LinuxTag
2013, 25.05.2013 Seite: 23 / 25© SpeedPartner GmbH Fazit ● Vielfältige Möglichkeiten ● Komplexes Regelwerk möglich ● Logs beobachten! ● Effektiv gecached? ● Nur gewünschte Inhalte gecached? (Cache-relevante Merkmale, ...) ● Zusammenarbeit mit / Einfluss auf zu cachende Applikationen vorteilhaft ● Tipp: In Snippets / Erfahrungen anderer „Inspiration“ suchen
24.
Web-Performance-Optimierung mit varnish LinuxTag
2013, 25.05.2013 Seite: 24 / 25© SpeedPartner GmbH Links / Hilfen ● Migration Varnish 2.1 auf 3.0 (Syntax-Änderungen) https://www.varnish-cache.org/docs/3.0/installation/upgrade.html ● VCL-Beispiele / Snippets https://www.varnish-cache.org/trac/wiki/VCLExamples ● TYPO3-Extension für Varnish-Anbindung http://typo3.org/extensions/repository/view/moc_varnish
25.
Web-Performance-Optimierung mit varnish LinuxTag
2013, 25.05.2013 Seite: 25 / 25© SpeedPartner GmbH Kontakt Danke fürs Zuhören sowie viel Erfolg und Spaß „auf der Überholspur“ :-) Link zu den Slides: http://talks.speedpartner.de/ Bei Fragen stehen wir selbstverständlich gerne zur Verfügung: Stefan Neufeind, neufeind@speedpartner.de SpeedPartner GmbH, http://www.speedpartner.de/
Jetzt herunterladen