●advanced topics(重要的话题)<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

         这里指南涵盖所有varnish基本的东西。如果您熟读上面的内容,您现在已经可以使用varnish
         下面是一个简单的概括,没有完全覆盖指南。
         More VCL

                   VCL是一个比较复杂的,我们已经讨论至今。这里还有很多可用的子程序和一些动作我们没有讨论。关于VCL完整的手册,请参见man page
         Using Inline C to extend Varnish

                   使用内置的C延伸varnish,如果您在varnish使用这种方法要小心,c语言运行在varnish内部,如果您的c语言有问题,那么varnish可能会宕掉。
                   首先使用C语言记录日志到syslog
# The include statements must be outside the subroutines.

 

 

C{

        #include <syslog.h>

}C

 

sub vcl_something {

        C{

                syslog(LOG_INFO, "Something happened at VCL line XX.");

        }C

}

Edge side Includes

Varnish可以在cache中创建一个web页面和其他页面不放在一起,这个片段有个特殊的缓存策略,如果您的网站有一个列表显示您最受欢迎的5篇文章。如果您的网站有这个页面,您可以制造一个缓存包括其他所有的页面。使用得当,可以大大提高您的命中率,减少对服务器的负载。ESI代码如下:
<HTML>

<BODY>

The time is: <esi:include src="/cgi-bin/date.cgi"/>

at this very moment.

</BODY>

</HTML>

vcl_fetch中使用esi关键字:
sub vcl_fetch {

    if (req.url == "/test.html") {

        esi;  /* Do ESI processing */

    }

}