TCDN-Command

En Transparent CDN usamos la cabecera TCDN-Command como una forma de invocar funciones preprogramadas por nosotros para hacerte la vida más fácil y que tus configuraciones sean más sencillas de realizar.

Este comando nos permite hacer ciertas cosas que de otra manera tendrías que hacer desde cero. Es importante que entiendas su uso, ya que no es algo trivial. Un mal uso de esta cabecera puede hacer que tu web no se comporte como piensas que debe hacerlo.

Lo primero que debes entender es que es una cabecera web y si la vas a llamar varias veces con distintas llamadas a funciones tiene que ser concatenada para que su valor no sea reescrito. Por ejemplo, en este caso en el que queremos banear dos IP y hacer que no cachee una URL en particular:

sub vcl_recv{
if (req.http.True-Client-Ip ~ "(1.1.2.2|1.2.3.4)") {
set req.http.TCDN-Command = "deny_request";
}
if ((bereq.http.host == "www.transparent.com") && (bereq.url ~ "/my-new-url")) {
set req.http.TCDN-Command = "pass, " + req.http.TCDN-Command;
}
}

Aquí llamamos a la función deny_request para banear las dos IP y además queremos que la petición sobre la URL http://www.transparentcdn.com/my-new-url no sea cacheada. Para ello, como ves, seteamos la cabecera TCDN-Command con el valor deny_request. En la segunda llamada, en lugar de hacerlo como la primera vez -algo que sobreescribiría el valor de la cabecera-, concatenamos el contenido actual de la cabecera TCDN-Command con el valor que queremos añadir. Para concatenar, lo haremos de la siguiente forma:

set req.http.TCDN-Command = "pass, " + req.http.TCDN-Command;

Es importante no olvidar la coma para separar de forma correcta los comandos.

En la actualizad, la cabecera TCDN-Command soporta estos valores: