The below VCL snippets are expected to be run on https://fiddle.fastlydemo.net/
Note: they are copied verbatim from https://fiddle.fastlydemo.net/fiddle/72e0d619
if (req.backend.is_shield)
{
set req.http.shield = "This is on the Edge PoP (req.backend.is_shield)";
}
else {
set req.http.shield = "This is on the shield PoP(!req.backend.is_shield)";
}
if(req.backend.is_cluster)
{
set req.http.cluster = "this is in a clustering state (hit/miss-cluster)(req.backend.is_cluster)";
}
else {
set req.http.cluster = "this is not in a clustering state (hit/miss-cluster)(!req.backend.is_cluster)";
}
if (!req.http.Fastly-FF) {
set req.http.x-status = "edge node(!req.http.Fastly-FF)";
}
else {
set req.http.x-status = "fetch/cluster node(req.http.Fastly-FF)";
}
if (req.http.Fastly-FF) {
set req.http.x-otherstatus = "fetch/cluster node(req.http.Fastly-FF)";
}
else {
set req.http.x-otherstatus = "edge node(!req.http.Fastly-FF)";
}
log req.http.shield;
log req.http.cluster;
log req.http.x-status;
log req.http.x-otherstatus;
if (req.backend.is_shield)
{
set req.http.shield = "This is on the Edge PoP (req.backend.is_shield)";
}
else {
set req.http.shield = "This is on the shield PoP(!req.backend.is_shield)";
}
if(req.backend.is_cluster)
{
set req.http.cluster = "this is in a clustering state (hit/miss-cluster)(req.backend.is_cluster)";
}
else {
set req.http.cluster = "this is not in a clustering state (hit/miss-cluster)(!req.backend.is_cluster)";
}
if (!req.http.Fastly-FF) {
set req.http.x-status = "edge node(!req.http.Fastly-FF)";
}
else {
set req.http.x-status = "fetch/cluster node(req.http.Fastly-FF)";
}
if (req.http.Fastly-FF) {
set req.http.x-otherstatus = "fetch/cluster node(req.http.Fastly-FF)";
}
else {
set req.http.x-otherstatus = "edge node(!req.http.Fastly-FF)";
}
log req.http.shield;
log req.http.cluster;
log req.http.x-status;
log req.http.x-otherstatus;
if(req.backend.is_origin){
set req.http.origin = "I am fetching the origin's contents(req.backend.is_origin)";
}
else{
set req.http.origin = "I am not fetching the origin's contents(!req.backend.is_origin)";
}
if (req.backend.is_shield)
{
set req.http.shield = "This is on the Edge PoP (req.backend.is_shield)";
}
else {
set req.http.shield = "This is on the shield PoP(!req.backend.is_shield)";
}
if(req.backend.is_cluster)
{
set req.http.cluster = "this is in a clustering state (hit/miss-cluster)(req.backend.is_cluster)";
}
else {
set req.http.cluster = "this is not in a clustering state (hit/miss-cluster)(!req.backend.is_cluster)";
}
if (!req.http.Fastly-FF) {
set req.http.x-status = "edge node(!req.http.Fastly-FF)";
}
else {
set req.http.x-status = "fetch/cluster node(req.http.Fastly-FF)";
}
if (req.http.Fastly-FF) {
set req.http.x-otherstatus = "fetch/cluster node(req.http.Fastly-FF)";
}
else {
set req.http.x-otherstatus = "edge node(!req.http.Fastly-FF)";
}
log req.http.shield;
log req.http.cluster;
log req.http.origin;
log req.http.x-status;
log req.http.x-otherstatus;
if (req.backend.is_shield)
{
set req.http.shield = "This is on the Edge PoP (req.backend.is_shield)";
}
else {
set req.http.shield = "This is on the shield PoP(!req.backend.is_shield)";
}
if(req.backend.is_cluster)
{
set req.http.cluster = "this is in a clustering state (hit/miss-cluster)(req.backend.is_cluster)";
}
else {
set req.http.cluster = "this is not in a clustering state (hit/miss-cluster)(!req.backend.is_cluster)";
}
if (!req.http.Fastly-FF) {
set req.http.x-status = "edge node(!req.http.Fastly-FF)";
}
else {
set req.http.x-status = "fetch/cluster node(req.http.Fastly-FF)";
}
if (req.http.Fastly-FF) {
set req.http.x-otherstatus = "fetch/cluster node(req.http.Fastly-FF)";
}
else {
set req.http.x-otherstatus = "edge node(!req.http.Fastly-FF)";
}
log req.http.shield;
log req.http.cluster;
log req.http.x-status;
log req.http.x-otherstatus;
if (req.backend.is_shield)
{
set req.http.shield = "This is on the Edge PoP (req.backend.is_shield)";
}
else {
set req.http.shield = "This is on the shield PoP(!req.backend.is_shield)";
}
if(req.backend.is_cluster)
{
set req.http.cluster = "this is in a clustering state (hit/miss-cluster)(req.backend.is_cluster)";
}
else {
set req.http.cluster = "this is not clustering(!req.backend.is_cluster)";
}
if (!req.http.Fastly-FF) {
set req.http.x-status = "edge node(!req.http.Fastly-FF)";
}
else {
set req.http.x-status = "fetch/cluster node(req.http.Fastly-FF)";
}
if (req.http.Fastly-FF) {
set req.http.x-otherstatus = "fetch/cluster node(req.http.Fastly-FF)";
}
else {
set req.http.x-otherstatus = "edge node(!req.http.Fastly-FF)";
}
log req.http.shield;
log req.http.cluster;
log req.http.x-status;
log req.http.x-otherstatus;
if (req.restarts == 0) {
log "return(restart) once to see if edge nodes now show is_cluster:1";
set req.url = "/status/201";
set req.http.Fastly-Force-Shield = "1";
return(restart);
}