Lit*_*ski 12 wordpress caching nginx varnish varnish-vcl
我在Nginx上运行的Wordpress网站上使用Varnish Cache.它的配置方式与本博客中提到的方式相同.它工作正常,但我不确定它是否实际上是从缓存中提供内容.
如何确定?有人可以指导我.我是Varnish缓存的新手.
小智 18
默认情况下,Varnish会将标头添加到它处理的任何请求的响应中.您可以使用Firebug等浏览器工具或curl或GET等CLI工具查看响应标头.这是一个GET示例:
sudo apt-get install libwww-perl && GET -Used http://localhost:6081/index.html
Run Code Online (Sandbox Code Playgroud)
要查找的两个标题是X-Varnish和Age.X-Varnish中将包含一个或两个数字,数字本身并不重要,但它们指的是请求.如果请求导致未命中,则Varnish从后端获取页面,并且响应中的X-Varnish标头包含当前请求的一个数字:
X-Varnish: 107856168
Run Code Online (Sandbox Code Playgroud)
下次请求同一页面时,可能会导致命中.如果是这样,Varnish从缓存中提取页面,并添加原始请求中的数字:
X-Varnish: 107856170 107856168
Run Code Online (Sandbox Code Playgroud)
该年龄头说缓存副本多少秒年纪.如果没有,它将为0,并且命中时它> 0.
请注意,后端可以设置年龄标题,使其看起来像一个错误的命中,堆叠的清漆可以在X-Varnish标题中产生错误的错误.为了确保在调试时你可以在VCL命中和未命中函数中添加自己的标题.有关说明,请参阅此页面https://www.varnish-software.com/static/book/VCL_functions.html.作为Varnish的新手,X-Varnish和Age标头很可能是您所需要的.
在 vcl 的各个点添加您自己的 X-header 是个好主意,这样您就可以对 vcl 的各种代码路径和条件进行单元测试。
例如,在 vcl_deliver 中:
sub vcl_deliver
{
# Insert Diagnostic header to show Hit or Miss
if (obj.hits > 0) {
set resp.http.X-Cache = "HIT";
set resp.http.X-Cache-Hits = obj.hits;
}
else {
set resp.http.X-Cache = "MISS";
}
...
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
21042 次 |
| 最近记录: |