Spec-Zone.ru › Varnish

Достижение высокой частоты попаданий

Теперь, когда Varnish запущен, вы можете получить доступ к своему веб-приложению через Varnish. Если ваше приложение не разработано специально для работы за веб-акселератором, вам, вероятно, придётся внести изменения либо в конфигурацию, либо в само приложение, чтобы получить высокую частоту попаданий в Varnish.

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

Обратите внимание, что вам нужен инструмент для просмотра HTTP-заголовков, передаваемых между Varnish и бэкендом. На сервере Varnish самый простой способ сделать это — использовать varnishlog и varnishtop, но иногда полезно использовать клиентский инструмент. Вот те, которые мы обычно используем.

Инструмент: varnishtop

Вы можете использовать varnishtop, чтобы определить, какие URL-адреса чаще всего обращаются к бэкенду. varnishtop -i BereqURL — это важная команда, которая показывает самые часто запрашиваемые URL-адреса, отправляемые Varnish на бэкенд. Вы можете найти дополнительные примеры использования varnishtop в разделе Статистики.

Инструмент: varnishlog

Когда вы определили URL-адрес, который часто отправляется на бэкенд, вы можете использовать varnishlog для просмотра запроса. varnishlog -q 'ReqURL ~ "^/foo/bar"' покажет вам запросы, поступающие от клиента, соответствующие /foo/bar.

Дополнительную информацию о работе varnishlog вы найдёте в разделе Ведение журнала в Varnish или в соответствующей странице справки.

Инструмент: lwp-request

lwp-request — это инструмент, являющийся частью библиотеки World Wide Web для Perl. Это несколько простых программ, которые могут выполнять HTTP-запрос и отображать результат. Мы в основном используем две программы: GET и HEAD.

Сайт vg.no был первым, который использовал Varnish, и люди, работающие с Varnish там, довольно искушённые. Поэтому интересно посмотреть на их HTTP-заголовки. Давайте отправим запрос GET для их главной страницы:

$ GET -H 'Host: www.vg.no' -Used http://vg.no/
GET http://vg.no/
Host: www.vg.no
User-Agent: lwp-request/5.834 libwww-perl/5.834

200 OK
Cache-Control: must-revalidate
Refresh: 600
Title: VG Nett - Forsiden - VG Nett
X-Age: 463
X-Cache: HIT
X-Rick-Would-Never: Let you down
X-VG-Jobb: http://www.finn.no/finn/job/fulltime/result?keyword=vg+multimedia Merk:HeaderNinja
X-VG-Korken: http://www.youtube.com/watch?v=Fcj8CnD5188
X-VG-WebCache: joanie
X-VG-WebServer: leon

Хорошо. Давайте посмотрим, что делает GET. GET обычно отправляет HTTP-запросы 0.9, в которых отсутствует заголовок «Host». Поэтому мы добавляем заголовок «Host» с опцией «-H». «-U» выводит заголовки запроса, «-s» — код состояния ответа, «-e» — заголовки ответа, а «-d» игнорирует само содержимое. Нам не нужно содержимое, только заголовки.

Как вы можете видеть, VG добавляет довольно много информации в свои заголовки. Некоторые заголовки, например, «X-Rick-Would-Never», специфичны для vg.no и их несколько странного чувства юмора. Другие, например, «X-VG-Webcache», предназначены для отладки.

Таким образом, чтобы проверить, устанавливает ли сайт куки для определенного URL-адреса, просто выполните:

GET -Used http://example.com/ |grep ^Set-Cookie

Инструмент: Live HTTP Headers

Также существует плагин для Firefox под названием Live HTTP Headers. Этот плагин позволяет просматривать отправляемые и получаемые заголовки. Live HTTP Headers можно найти по адресу https://addons.mozilla.org/en-US/firefox/addon/3829/ или, выполнив поиск в Google по запросу «Live HTTP Headers».

Copyright © 2006 Verdens Gang AS
Copyright © 2006–2020 Varnish Software AS
Licensed under the BSD-2-Clause License.
https://varnish-cache.org/docs/7.4/users-guide/increasing-your-hitrate.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API