CLI — управление Varnish
После запуска varnishd, вы можете управлять им с помощью программы varnishadm и командной строки:
varnishadm help
Если вы хотите запустить varnishadm с удалённой системы, мы рекомендуем вам подключиться к системе, на которой работает varnishd. (См. также: Локальные и удалённые подключения CLI)
Вы можете подключиться по SSH к компьютеру varnishd и запустить varnishadm:
ssh $hostname varnishadm help
Если вы не передадите аргументы команды, varnishadm запустится в интерактивном режиме с автодополнением команд, историей команд и другими удобствами:
critter phk> ./varnishadm 200 ----------------------------- Varnish Cache CLI 1.0 ----------------------------- FreeBSD,13.0-CURRENT,amd64,-jnone,-sdefault,-sdefault,-hcritbit varnish-trunk revision 2bd5d2adfc407216ebaa653fae882d3c8d47f5e1 Type 'help' for command list. Type 'quit' to close CLI session. Type 'start' to launch worker process. varnish>
CLI всегда возвращает трёхзначный код состояния, показывающий результат выполнения.
Коды 200 и 201 означают OK, любой другой код означает, что выполнение команды было прервано по какой-либо причине.
(Если вы получите код 201, это означает, что вывод был усечён. См. параметр cli_limit).
Когда команды передаются в качестве аргументов программе varnishadm, код состояния, отличный от 200 или 201, приведёт к завершению программы с кодом состояния 1 и выводу кода состояния в стандартный поток ошибок.
Что можно сделать с помощью CLI
С помощью CLI вы можете:
- загрузить/использовать/отбросить VCL-программы
- заблокировать (обнулить) кешируемое содержимое
- изменить параметры
- запустить/остановить процесс рабочего потока
Ниже кратко обсудим каждый из этих пунктов.
Загрузка, использование и отбрасывание VCL-программ
Все решения по кэшированию и политике принимаются VCL-программами.
Вы можете загрузить несколько VCL-программ, но одна из них назначена «активной», и именно с неё начинается обработка всех новых запросов.
Чтобы загрузить новую VCL-программу:
varnish> vcl.load some_name some_filename
Загрузка прочитает VCL-программу из файла и скомпилирует её. Если компиляция завершится ошибкой, вы получите сообщение об ошибке:
.../mask is not numeric.
('input' Line 4 Pos 17)
"192.168.2.0/24x",
----------------#################-
Running VCC-compiler failed, exit 1
VCL compilation failed
Если компиляция успешно завершится, VCL-программа загрузится, и вы можете сделать её активной, когда захотите:
varnish> vcl.use some_name
Если вы обнаружите, что это была плохая идея, вы можете вернуться к предыдущей VCL-программе:
varnish> vcl.use old_name
Переключение происходит мгновенно, все новые запросы начнут использовать активированную VCL-программу сразу же. Те запросы, которые обрабатываются в данный момент, завершатся с использованием той VCL-программы, с которой они начались.
Мы настоятельно рекомендуем разработать аварийную VCL-программу и всегда её загружать, чтобы её можно было активировать командой
vcl.use emergency
Блокировка кешируемого содержимого
Varnish предлагает «очистку» для удаления элементов из кеша, но для этого необходимо знать, что именно удалять.
Иногда бывает полезно удалять элементы из кеша, не имея точного списка для удаления.
Представьте, например, что логотип компании изменился, и теперь вам нужно заставить Varnish прекратить выдачу старого логотипа из кеша:
varnish> ban req.url ~ "logo.*[.]png"
Это должно сработать, и да, это регулярное выражение.
Мы называем это «блокировкой», потому что объекты всё ещё находятся в кеше, но теперь запрещены для выдачи, в то время как весь остальной кеш не затрагивается.
Даже когда вы хотите удалить все кешируемое содержимое, блокировка работает быстрее и менее разрушительно, чем перезапуск:
varnish> ban obj.http.date ~ .*
Изменение параметров
Параметры можно задавать в командной строке с аргументом «-p», но почти все параметры можно просмотреть и изменить в режиме реального времени с помощью CLI:
varnish> param.show prefer_ipv6
200
prefer_ipv6 off [bool]
Default is off
Prefer IPv6 address when connecting to backends
which have both IPv4 and IPv6 addresses.
varnish> param.set prefer_ipv6 true
200
В общем случае не рекомендуется изменять параметры, если нет веской причины, такой как настройка производительности или конфигурации безопасности.
Большинство параметров вступят в силу мгновенно или с небольшой задержкой, но некоторые из них требуют перезапуска дочернего процесса для их вступления в силу. Это всегда указывается в описании параметра.
Запуск и остановка процесса рабочего потока
В общем случае процесс рабочего потока следует оставлять работающим, но если вам нужно его остановить и/или запустить, используются очевидные команды:
varnish> stop
и:
varnish> start
Если вы запускаете varnishd с аргументом «-d» (отладка), вам всегда нужно явно запускать дочерний процесс.
Если дочерний процесс завершится, мастер-процесс автоматически перезапустит его, но вы можете отключить это с помощью параметра auto_restart.
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/run_cli.html