Назад | Перейти на главную страницу

лак не кешируется правильно

Пытаюсь настроить лак (автор: default_varnish3.vcl_.txt)

[alexus@wcmisdlin02 ~]$ rpm -q varnish
varnish-3.0.3-1.el5.centos.x86_64
[alexus@wcmisdlin02 ~]$ 

Я делаю первое обращение через свой браузер (страница загружается нормально), затем делаю это снова через curl на моем локальном компьютере:

[alexus@wcmisdlin02 ~]$ curl -I alexustest:6081
HTTP/1.1 200 OK
Server: Apache/2.2.15 (Red Hat)
X-Powered-By: PHP/5.3.3
Cache-Control: public, max-age=1800
Last-Modified: Thu, 11 Apr 2013 19:27:15 +0000
Expires: Sun, 11 Mar 1984 12:00:00 GMT
Vary: Cookie,Accept-Encoding
Content-Type: text/html; charset=utf-8
Date: Thu, 11 Apr 2013 19:27:16 GMT
X-Varnish: 1355259954
Age: 0
Via: 1.1 varnish
Connection: keep-alive
X-Served-By: wcmisdlin02.uftmasterad.org
X-Cache: MISS

это показывает мне X-Cache: MISS, когда это действительно должно было быть HIT (поскольку это второй удар), поэтому я делаю это снова (третий раз и снова с моей рабочей станции Linux).

[alexus@wcmisdlin02 ~]$ curl -I alexustest:6081
HTTP/1.1 200 OK
Server: Apache/2.2.15 (Red Hat)
X-Powered-By: PHP/5.3.3
Cache-Control: public, max-age=1800
Last-Modified: Thu, 11 Apr 2013 19:27:15 +0000
Expires: Sun, 11 Mar 1984 12:00:00 GMT
Vary: Cookie,Accept-Encoding
Content-Type: text/html; charset=utf-8
Date: Thu, 11 Apr 2013 19:27:19 GMT
X-Varnish: 1355259955 1355259954
Age: 3
Via: 1.1 varnish
Connection: keep-alive
X-Served-By: wcmisdlin02.uftmasterad.org
X-Cache: HIT
X-Cache-Hits: 1

[alexus@wcmisdlin02 ~]$ 

а теперь это ХИТ, похоже, что это кеширование для каждого клиента или что-то в этом роде. Как я уже сказал, я использую default_varnish3.vcl_.txt, так что вы можете видеть мою конфигурацию в таком виде, я только изменил информацию о бэкэнд, чтобы соответствовать моей среде, а также добавил следующий код (для создания HIT / MISS):

[root@wcmisdlin02 varnish]# cat vcl_deliver/resp.vcl 
set resp.http.X-Served-By = server.hostname;
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"; 
}
[root@wcmisdlin02 varnish]# 

* ОБНОВИТЬ *

лакокрасочные:

10.52.208.221 - - [11/Apr/2013:15:45:35 -0400] "HEAD http://alexustest:6081/ HTTP/1.1" 200 0 "-" "curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.13.1.0 zlib/1.2.3 libidn/1.18 libssh2/1.2.2"
10.100.0.35 - - [11/Apr/2013:15:45:38 -0400] "HEAD http://alexustest:6081/ HTTP/1.1" 200 0 "-" "curl/7.24.0 (x86_64-apple-darwin12.0) libcurl/7.24.0 OpenSSL/0.9.8r zlib/1.2.5"

сначала попадаю в мой браузер (страница загружается нормально), затем я делаю это снова через curl

Но вы сказали веб-кэшу, что собираетесь выдавать разные результаты в зависимости от файлов cookie и кодировки контента:

Vary: Cookie, Accept-Encoding

Вы удалили все файлы cookie в своем браузере до первого запроса? Также как вы сделали запрос из браузера - перезагрузка имеет совсем другое поведение, чем обновление.

(Кстати, если вы собираетесь варьировать свой файл cookie и используете сеансы, вам следует обеспечить контроль кеша - иначе вы заставляете Varnish работать без пользы, действительно, вы действительно можете замедлить работу своего сайта).