首页 / 帖子
drupal7如何检查varnish是否配制成功?

大家好,我在安装使用的过程中遇到问题,想请教。

我的环境,mac + apache ,安装varnish 的过程(使用了port安装):https://www.lullabot.com/blog/article/installing-varnish-mac-os-x-mamp-or-any-other-server        

安装:sudo port install varnish

最终:配制文件路径在:/opt/local/etc/varnish/default.vcl, /opt/local/etc/varnish/varnish.conf           

varnishd文件在:/opt/local/sbin/varnishd     

==================   

apache情况:网站www.sitea.com 在apache 的vhost  中绑定了端口8080,也就是说 www.sitea.com:8080可以正常访问到网站,在firebug中看到的header信息不包含“X-Varnish”

==================

varnish 配制情况 :

/opt/local/etc/varnish/default.vcl中

backend default {

 .host = "127.0.0.1";

 .port = "8080";

}

===========

Drupal配制,安装并启用了varnish模块,但是在配制中:

Varnish Control Key,这个没有值 ,在安装的varnish 中也没有发现secret文件,故这项为空

settings.php文件添加了和修改了配制。

Varnish Control Terminal :这里填写:127.0.0.1:8080

==========

疑问:

1.访问网站www.sitea.com 在header信息中有一个“X-Varnish 1771625176”,这意味着varnish配制成功了么?

2.为什么在drupal后台配制varnish的页面返回的消息是:The Varnish control terminal is not responding at 127.0.0.1 on port 8080.

3.为什么没有生成 Varnish Control Key 的secret文件。


谢谢……

2个答案
YOYO
发布于:2014-10-01 18:35
  1. X-Varnish 1771625176 表示varnish配置成功,但是不一定缓存命中。

    X-Varnish 1771625176 1778888999 后面再来一个数字,表示varnish缓存成功。

  2. Drupal配置后台的端口一般是6082或者6081,修改端口试试,默认配置文件可能会在: /etc/default/varnish 

  3. secret文件可能会在 /etc/varnish/secret (配置文件会因为服务器的不同而不同,所以只能说可能在)


另外,请参考这个问题《varnish模块的作用》:  http://drupal001.net/question/258 

推荐参考这篇文章《Varnish and Drupal 7》:   http://linuxdev.dk/articles/varnish-and-drupal-7 

==========

补充回答一下

X-Varnish 1771625176 表示缓存没有命中,要命中缓存这个牵扯的比较多。

最主要的是HTTP里面的缓存头,比如max-aga,cache-control等参数,这些参数表示这个内容是否能缓存。

另外,是否有cookie,cookie有没有清除干净,还有vcl里面对cookie的设置,这个比较复杂,不是简单就能说清楚,建议多查查相关文档。

发布于:2014-10-01 19:14

感谢,楼上的精彩回答,后来我又深入的研读了你发表在网站上关于varnish的几篇文章,重新理解了一下“Varnish Control Terminal”


Drupal后台配制 Varnish Control Terminal这里,应该指的是varnishd参数中的T的值:

sudo varnishd -a 127.0.0.1:80 -b 127.0.0.1:8080 -s file,/tmp,500M -T 127.0.0.1:6082;

如上,就应该是“127.0.0.1:6082”这一段,修改保存,结果如下:

Status Varnish running.

启动成功。

============

但是经过反复的操作,在header 中始终只有一个值如:

X-Varnish:2140841548

按照楼上的意思,就是varnish配置成功,但缓存没有命中。不知道是什么原因!!!



++++++++++++++++++++++++++++++++更新++++++++++++++++++++++++++++++++++++

今天把电脑打开,换了一个浏览器 FIEXFOX,并在没有登录DRUPAL后台的情况下。

把网站刷新并一下HEADER 信息,比如:http://www.dev.local.test.com/node/5

第一次刷新,查看到的“响应头信息”(第一种):

HTTP/1.1 200 OK
Server: Apache
X-Powered-By: PHP/5.3.28
X-Drupal-Cache: MISS
Etag: "1412209342-1"
Content-Language: en
Link: </node/5>; rel="shortlink",</node/5>; rel="canonical"
X-Generator: Drupal 7 (http://drupal.org)
Cache-Control: public, max-age=86400
Last-Modified: Thu, 02 Oct 2014 00:22:22 +0000
Expires: Sun, 19 Nov 1978 05:00:00 GMT
Vary: Cookie,Accept-Encoding
Content-Encoding: gzip
Content-Type: text/html; charset=utf-8
Content-Length: 2963
Accept-Ranges: bytes
Date: Thu, 02 Oct 2014 00:22:22 GMT
X-Varnish: 2140841915
Age: 0
Via: 1.1 varnish
Connection: keep-alive

==================

好当我刷新这个页面的时候,奇迹发生了(第二种):

HTTP/1.1 200 OK
Server: Apache
X-Powered-By: PHP/5.3.28
X-Drupal-Cache: MISS
Etag: "1412209342-1"
Content-Language: en
Link: </node/5>; rel="shortlink",</node/5>; rel="canonical"
X-Generator: Drupal 7 (http://drupal.org)
Cache-Control: public, max-age=86400
Last-Modified: Thu, 02 Oct 2014 00:22:22 +0000
Expires: Sun, 19 Nov 1978 05:00:00 GMT
Vary: Cookie,Accept-Encoding
Content-Encoding: gzip
Content-Type: text/html; charset=utf-8
Content-Length: 2963
Accept-Ranges: bytes
Date: Thu, 02 Oct 2014 00:24:08 GMT
X-Varnish: 2140841916 2140841915
Age: 106
Via: 1.1 varnish
Connection: keep-alive


=============

请看刷新前后 参数的对比,

X-Varnish: 2140841915 和 X-Varnish: 2140841916 2140841915

Age: 0 和 Age: 106


疑问:

  1. 刷新前后为什么情况会不一样,正常么,如何解释?

  2. 当我登陆到drupal后台以后,不管如何刷新,响应头信息的结果总是上面的第一种。