Skip to content

Instantly share code, notes, and snippets.

View aondio's full-sized avatar

arianna-aondio aondio

View GitHub Profile
varnishtest "Test HTTP vmod CUSTOM request"
server s1 {
rxreq
txresp -status 601
} -start
server s2 {
rxreq
txresp -status 602 -reason "PURGE ok"
varnishtest "Get YKeys from Origin server"
server s1 {
rxreq
txresp -hdr "ykey: BOB TOM"
} -start
varnish v1 -vcl+backend {
import ykey;
VCP layer:
v_b_r:
# Simply use caching headers. Nothing relevant here.
if beresp.http.X-VCP-Ttl > 0:
beresp.ttl = beresp.http.X-VCP-Ttl
beresp.grace = beresp.http.X-VCP-Grace
beresp.keep = beresp.http.X-VCP-Keep
else:
# Let built-in VCL transform this in a HFM.
varnishtest "implementing x-accel-redirect"
server s1 {
rxreq
expect req.url == "/s1"
txresp -hdr "X-Accel-Redirect: /s2"
rxreq
expect req.url == "/s2"
txresp
} -start
import std;
sub vcl_recv {
if (!std.healthy(req.backend_hint)) {
set req.grace = 4h;
}
sub vcl_backend_response {
varnishtest "Cut off ESI request should be retried"
server s1 {
rxreq
expect req.url == "/list"
txresp -body {<esi:include src="/fragment"/>}
rxreq
expect req.url == "/fragment"
txresp -status 503
sub vcl_recv {
if (req.http.host == "t1.weiyuzw.com") {
set req.backend_hint = origin_t1_weiyuzw;
}
}
vcl 4.0;
import http;
# We define the origin servers
# assumption they listen on port 80, please change it if not true
backend origin_a {
.host = "103.234.96.112";
.port = "80";
}
varnishtest "hash director with sick backend"
server s1 -repeat 2 {
rxreq
expect req.url == "/s1"
expect req.http.Host == "host2"
txresp -hdr "Server: s1" -body "server1"
} -start
server s2 {
varnishtest ESI
server s1 {
rxreq
txresp -body {
<html>
Before include
<!--esi <esi:include src=""/> -->
After include
}