Varnish — это демон кэширования на стороне сервера. На нашем рабочем сервере Varnish прослушивает порт HTTP 80 и работает в кэше внешнего интерфейса рабочего сервера; мы используем его в основном для быстрой и быстрой работы с JS, CSS и статическими изображениями.
Этот пост основан на стандартной установке Varnish Ubuntu / Debian с использованием apt-get . Эти инструкции были протестированы на Ubuntu 12.04 LTS и Varnish 3.0.2.
Содержание
1. Перезагрузить отредактированные лаковые конфиги
2. Очистка кэша Varnish из командной строки
1. Перезагрузить отредактированные лаковые конфиги
Правила кэширования лака находятся в папке / etc / varnish . Точка входа конфигурации (основной файл) — /etc/varnish/default.vcl. Сам демон (порты и т. Д.) Настраивается с помощью / etc / defaults / varnish .
Varnish управляется утилитой varnishadm. Вы можете использовать ее в консольном режиме или выполнять непосредственную оценку команд (например, shell, MySQL client). В Ubuntu / Debian по умолчанию для установки Varnish достаточно команды varnishadm . Однако при пользовательской настройке вам может потребоваться направить его на специальный консольный порт или указать секретный файл.
Загрузка конфигурации лака состоит из 2 этапов:
- Разобрать и загрузить файл cfg в память Varnish и дать ему дескриптор, который вы позже сможете использовать
- Активировать конфигурацию дескриптором (возможно только в случае успешного выполнения шага 1)
Ниже приведен однострочный сценарий оболочки, который генерирует случайный дескриптор и использует его для загрузки конфигурации, если она успешно анализируется.
HANDLE=varnish-cfg-$RANDOM ; \ varnishadm vcl.load $HANDLE /etc/varnish/default.vcl && \ varnishadm vcl.use $HANDLE
2. Очистка кэша Varnish из командной строки
Еще один полезный фрагмент кода — очистить весь кеш Varnish из командной строки (аннулировать весь кеш):
varnishadm "ban.url ." # Matches all URLs
Примечание: команда является purge.url в Varnish 2.x.
Кэш хранится в виде файла общей памяти в /var/lib/varnish/$INSTANCE/varnish_storage.bin . Когда Varnish запущен, он должен отобразить 1 ГБ (по умолчанию) вашей виртуальной памяти в этот файл (как видно из ps , вверху ).
Вы также можете забанить по имени хоста:
varnishadm "ban req.http.host == opensourcehacker.com"
Вот транскрипт оболочки, где мы видим, что запрет работает, как и предполагалось, с помощью утилиты wget.
# Go to /tmp because wget leaves files around cd /tmp # 1st load: uncached file, one X-Varnish stamp wget -S http://opensourcehacker.com/wp-content/uploads/2011/08/Untitled-41.jpg --2013-02-06 20:02:18-- http://opensourcehacker.com/wp-content/uploads/2011/08/Untitled-41.jpg Resolving opensourcehacker.com (opensourcehacker.com)... 188.40.123.220 Connecting to opensourcehacker.com (opensourcehacker.com)|188.40.123.220|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache/2.2.22 (Ubuntu) Last-Modified: Sun, 14 Aug 2011 22:55:01 GMT ETag: "2000893-108ec-4aa7f09555b40" Cache-Control: max-age=3600 Expires: Wed, 06 Feb 2013 23:02:19 GMT Content-Type: image/jpeg Content-Length: 67820 Accept-Ranges: bytes Date: Wed, 06 Feb 2013 22:02:19 GMT X-Varnish: 705602514 # 2st load: cached file, two X-Varnish stamps wget -S http://opensourcehacker.com/wp-content/uploads/2011/08/Untitled-41.jpg --2013-02-06 20:02:21-- http://opensourcehacker.com/wp-content/uploads/2011/08/Untitled-41.jpg Resolving opensourcehacker.com (opensourcehacker.com)... 188.40.123.220 Connecting to opensourcehacker.com (opensourcehacker.com)|188.40.123.220|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache/2.2.22 (Ubuntu) Last-Modified: Sun, 14 Aug 2011 22:55:01 GMT ETag: "2000893-108ec-4aa7f09555b40" Cache-Control: max-age=3600 Expires: Wed, 06 Feb 2013 23:02:19 GMT Content-Type: image/jpeg Content-Length: 67820 Accept-Ranges: bytes Date: Wed, 06 Feb 2013 22:02:22 GMT X-Varnish: 705602515 705602514 # Purge varnishadm "ban.url ." # It's non-cached again wget -S http://opensourcehacker.com/wp-content/uploads/2011/08/Untitled-41.jpg --2013-02-06 20:02:34-- http://opensourcehacker.com/wp-content/uploads/2011/08/Untitled-41.jpg Resolving opensourcehacker.com (opensourcehacker.com)... 188.40.123.220 Connecting to opensourcehacker.com (opensourcehacker.com)|188.40.123.220|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: Apache/2.2.22 (Ubuntu) Last-Modified: Sun, 14 Aug 2011 22:55:01 GMT ETag: "2000893-108ec-4aa7f09555b40" Cache-Control: max-age=3600 Expires: Wed, 06 Feb 2013 23:02:35 GMT Content-Type: image/jpeg Content-Length: 67820 Accept-Ranges: bytes Date: Wed, 06 Feb 2013 22:02:35 GMT X-Varnish: 705602516
3. Перезапустите Varnish в Ubuntu.
Это вызывает сброс конфигурации, не будучи уверенным в том, что хранилище файлов кэша будет сброшено (?).
service varnish restart
4. Дальнейшие идеи
Если кто-то знает, где взять подсветку синтаксиса Varnish VCL для Sublime Text 2 (TextMate), которая облегчит мою жизнь, используйте в комбинации плагин SFTP.