de idea a implementación con varnish plus
TRANSCRIPT
De idea a implementación con Varnish PlusConstruyendo www.stockphotos.com
Carlos Abalde [email protected] Madrid, 20 de octubre de 2016
La idea
https://www.flickr.com/photos/cristiancarrara/8322120385/
Primeros pasos
https://www.flickr.com/photos/nickharris1/4914981236/
Morir de éxito
¿Y ahora qué?
Varnish Cache 101
$cat/etc/varnish/default.vcl...
subvcl_recv{unsetreq.http.Cookie;}
subvcl_backend_response{setberesp.ttl=5s;setberesp.grace=24h;}
Varnish Cache 101
HTTP/1.1200OKServer:Apache/2.2.15Content-Type:text/html;charset=utf-8...Cache-Control:s-maxage=5,stale-while-revalidate=86400...
Varnish Cache 101
HTTP/1.1200OKServer:Apache/2.2.15Content-Type:text/html;charset=utf-8...Cache-Control:s-maxage=3600,stale-while-revalidate=86400xkey:category/42xkey:photo/31416xkey:photo/2718...
Alta disponibilidad
https://www.flickr.com/photos/56587128@N04/12827233464/
¡Y ahora sin caché!
Massive Storage Engine
$cat/etc/default/varnish...DAEMON_OPTS="-a:80\...-smse,/mnt/store,/mnt/book"
$mkfs.mse-s/mnt/store,100G-b/mnt/book,5G
Varnish High Availability
$cat/etc/vha-agent/nodes.confvarnish1=192.168.1.101varnish2=192.168.1.102varnish3=192.168.1.103
$vha-agent-N/etc/vha-agent/nodes.conf-g>/etc/varnish/vha.vcl
HTTPS everywhere
https://www.flickr.com/photos/bilal-kamoon/6958578902/
¿Para cuándo SSL/TLS?
[…] huge waste of time to even think about it!
Terminación SSL/TLS
$cat/etc/default/varnish...DAEMON_OPTS="-a:80\-a127.0.0.1:6086,PROXY\..."
Backends SSL/TLS
backenddefault{.host="origin.stockphotos.pri";.port="8080";....ssl=1;.ssl_verify_peer=1;}
Reporting
Varnish Custom Statistics
$cat/etc/varnish/default.vcl...
subvcl_deliver{if(req.method=="GET"&&req.url~"^/download/\d+/"&&resp.status==200){std.log("vcs-key:DOWNLOADS/"+regsub(req.url,"^/download/(\d+)/.*$","\1"));}}
Control de acceso
https://www.flickr.com/photos/75069455@N02/6756716413/
Bloqueo de robots
๏ Bloqueo de las descargas masivas de imágenes en alta resolución
‣ Rate limiting indexado por IP de origen
‣ VMODs vsthrottle, redis, memcached…
๏ Bloqueo vs. reCAPTCHA + token HMAC
๏ ¿Y los web crawlers?
Bonos de descargas
๏ Monetización complementaria a la publicidad
‣ Web abierta, excepto la descarga de imágenes en alta resolución, que requiere de registro / autenticación
‣ Usuarios pueden descargar hasta cinco imágenes en alta resolución a la semana sin coste, pudiendo prescindir de ese límite comprando un bono de descargas
๏ ¿Y los web crawlers?
A/B testing, varnishtest, VAC, device detection…
https://www.flickr.com/photos/eldholm/2354982554/
¿Preguntas?
https://www.flickr.com/photos/101582229@N08/13948771150/