●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 */
}
}
转载于:https://blog.51cto.com/linuxguest/360527