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

Varnish 3.0.2 и ISPConfig 3.0.4

Я следил за учебником The Perfect Server - Ubuntu 11.10 [ISPConfig 3] здесь. Я использую сервер Ubuntu 11.04 (Natty Narwhal) с 1024 RAM в Rackspace. Я прошел и обновился до ISPConfig 3.0.4. До сих пор все работало отлично, когда я решил попробовать установить Varnish. Сначала я установил Varnish, выполнив:

apt-get update
apt-get upgrade
apt-get install varnish

По-видимому, была установлена ​​версия Varnish 2.x, поэтому я вернулся и добавил репозитории для пакетов, предоставленных varnish-cache.org

curl http://repo.varnish-cache.org/debian/GPG-key.txt | apt-key add -
echo "deb http://repo.varnish-cache.org/ubuntu/ lucid varnish-3.0" >> /etc/apt/sources.list
apt-get update
apt-get install varnish

Это обновило мою версию Varnish до 3.0.2.

Затем я внес следующие изменения:

vim /etc/default/varnish
change DAEMON_OPTS to port 80:
vim /etc/apache2/ports.conf
NameVirtualHost *:8000
Listen 8000
vim /etc/apache2/sites-available/default
<VirtualHost *:8000>
vim /etc/apache2/sites-available/ispconfig.vhost
Listen 8080
NameVirtualHost *:8080
<VirtualHost _default_:8080>

Затем я приступил к настройке других моих хостов на использование 8000 (порт apache2)

Итак, со всем этим набором я перезапускаю Apache2 и Varnish для тестирования. Я использовал Firebug в Firefox 11.0

Результат того, что я вижу, похоже, не указывает на то, что Varnish работает полностью правильно:

Прежде всего я вижу: X-Varnish 1644834493, но я слышал, что, если у вас нет двух временных меток рядом, он, вероятно, работает неправильно, поэтому, например, я подумал, что могу увидеть что-то вроде:

X-Varnish 1644834493 1644837493

Также, если я заметил это в выводе, который кажется непостоянным:

X-Drupal-Cache MISS

Бывают случаи, когда он также говорит HIT ....

Итак, у меня возникает вопрос: я думаю, что Varnish частично работает, однако почему я не вижу две отметки времени на X-Varnish, как я думаю, что должен, и правильно ли выглядит вывод на снимке экрана? Если Varnish не работает, может кто-нибудь сказать мне, что я делаю не так?

Заранее спасибо.

Что касается заголовка X-Varnish: первый идентификатор - это внутренний идентификатор запроса, поэтому он должен каждый раз меняться. Если есть второе значение, то Varnish предоставляет вам кэшированный объект. Второй ID - это ID внутреннего кеша этого объекта.

Что касается вашего предположения, вы правы, что Varnish не доставил кэшированный контент. Вы можете дополнительно проверить заголовок Age, который сообщает нам, что контент старше 0 секунд (так что он свежий). Допустимый максимальный возраст ответа установлен в заголовке Cache-Control: в вашем случае 180 секунд. Это немного, но достаточно для дальнейшего тестирования.

Пожалуйста, проверьте заголовки ответов на следующие действия (позаботьтесь о том, чтобы включить кеширование в вашем браузере - для Firefox вы можете включить / отключить его через панель веб-разработчика):

  1. после первой новой загрузки тестовой страницы нажмите перезагрузить в браузере
  2. после первой новой загрузки тестовой страницы щелкните адресную строку браузера и нажмите клавишу ввода

Браузер по-разному обрабатывает два способа получения контента (подробности см. В заголовках запроса). Нажав кнопку перезагрузки (или отключив кеширование через панель веб-разработчика), ваш браузер отправляет заголовки Cache-Control, чтобы принудительно доставить свежий контент, и Varnish учитывает их. При повторной загрузке одного и того же URL-адреса (например, щелчок по ссылкам, использование кнопок вперед и назад, нажатие Enter в адресной строке браузера ...) ваш браузер не отправляет эти заголовки Cache-Control, а Varnish может доставлять кэшированный контент .

Если вы хотите кэшировать это поведение и хотите принудительно использовать кешированный контент, вы можете оптимизировать конфигурацию Varnish. Но это уже другая история.

Что касается заголовка X-Drupal-Cache: этот заголовок устанавливается серверной частью Varnish. Это говорит вам, что Varnish использовал свежий контент для своего кеша или ответа.