Запустите Varni sh с помощью файла конфигурации - PullRequest
0 голосов
/ 03 апреля 2020

Ubuntu 18.04.4 LTS

varnishd -V
varnishd (varnish-6.4.0 revision 13f137934ec1cf14af66baf7896311115ee35598)
Copyright (c) 2006 Verdens Gang AS
Copyright (c) 2006-2020 Varnish Software AS

Мои самые первые шаги в изучении Варни sh и я укусила пыль.

Я подготовил файл конфигурации в / etc / systemd / system / varni sh .service

Я пытаюсь запустить varnishd с этой конфигурацией:

[Unit]
Description=Varnish HTTP accelerator
Documentation=https://www.varnish-cache.org/docs/4.1/ man:varnishd

[Service]
Type=simple
LimitNOFILE=131072
LimitMEMLOCK=82000
ExecStart=/usr/sbin/varnishd -j unix,user=vcache -F -a :6081 -b :8000 -T localh$
ExecReload=/usr/share/varnish/varnishreload
ProtectSystem=full
ProtectHome=true
PrivateTmp=true
PrivateDevices=true

[Install]
WantedBy=multi-user.target

Содержимое файла взято из книги «Начало работы с Varni sh Cache», но это для версии 4.1.

Документация: https://varnish-cache.org/docs/6.4/users-guide/run_security.html#cli -интерфейс-аутентификация

Хорошо, я подготовил файл. Я ввожу команду:

varnishd -S /etc/systemd/system/varnish.service
Error: Neither -b nor -f given. (use -f '' to override)
(-? gives usage)

Но эта команда работает нормально:

sudo varnishd -a localhost:6081 -b localhost:8000 

Не могли бы вы помочь мне понять:

  1. Какой простейший файл конфигурации быть как.
  2. Где это должно быть размещено.
  3. Как запустить Varni sh с этой конфигурацией.

Ответы [ 2 ]

0 голосов
/ 04 апреля 2020

Я автор Начало работы с Varni sh Cache . Спасибо за покупку моей книги.

Файл varnish.service является файлом systemd. Он не имеет ничего общего с самим Varni sh, но это то, что Ubuntu использует для управления сервисом Varni sh.

Команда ExecStart

Вот как я должен установить ExecStart команда в varnish.service:

/usr/sbin/varnishd -f /etc/varnish/default.vcl -a http=:80,HTTP -a proxy=:8443,PROXY -s malloc,1G -S /etc/varnish/secret -T localhost:6082

Чего вы не видите в этой команде:

  • -F: -F Флаг имеет смысл, только если вы запускаете процесс varnishd на переднем плане. Например, в Docker. Поскольку вы используете systemd для запуска Varni sh, вы можете удалить этот параметр
  • -b: опция -b используется для определения местоположения вашего бэкенда. Если вы используете -b, вы не можете использовать -f, и вам потребуется -f для вашей конфигурации VCL.

Что означают опции

  • -f: расположение файла VCL. Относится к /etc/varnish/default.vcl в этом случае
  • -a: адрес прослушивания Varni sh. В этом случае это порт 80 для обычного HTTP и порт 8443 для соединений, использующих протокол PROXY
  • -s: размер кеш, в данном случае 1 ГБ
  • -S: расположение файла секретного ключа. В этом случае это /etc/varnish/secret
  • -T: адрес прослушивания CLI . В этом случае это localhost на порт 6082

VCL-файл

VCL-файл, который содержит расположение бэкэнда и определяет правила кэширования. , Этот файл находится в /etc/varnish/default.vcl.

Это минимальный объем кода VCL, который необходимо запустить:

vcl 4.0;

backend default {
    .host = "localhost";
    .port = 8080;
} 

Этот конфиг предполагает, что ваш веб-сервер работает на той же машине, на порту 8080 .

Вы можете расширить конфигурацию varni sh, подключив различные состояния процесса Varni sh Finite State Machine .

См. https://varnish-cache.org/docs/6.0/reference/vcl.html#varnish -configuration-language , чтобы узнать больше о VCL.

Активация изменений

Всякий раз, когда вы обновляете varnish.service, вам необходимо перезагрузить systemd. Эта команда вам нужна:

sudo systemctl daemon-reload

Чтобы активировать изменения в вашем файле VCL, вам нужно выполнить следующую команду:

sudo systemctl reload varnish.service

Удачи!

0 голосов
/ 04 апреля 2020

Посмотрите здесь: https://varnish-cache.org/docs/6.4/users-guide/command-line.html

Более подробно здесь: https://varnish-cache.org/docs/6.4/reference/varnishd.html

Конфигурация Varni sh может для пример можно разместить здесь: /etc/varnish/default.vcl

Самый простой VCL:

backend default {
        .host = "localhost:81";
}

Как написать VCL: https://varnish-cache.org/docs/6.4/users-guide/vcl.html

...