Caddy: различия между версиями

Перейти к навигации Перейти к поиску
нет описания правки
Нет описания правки
Нет описания правки
Строка 23: Строка 23:


==== Продвинутая установка ====
==== Продвинутая установка ====
Caddy поставляется как единый бинарный файл со статической линковкой. Поэтому, для того чтобы добавить дополнительные модули (плагины), необходимо выполнять повторную сборку Caddy.
Для сборки необходим Go версии 1.19 или новее. Установим его:


  $ su -
  $ su -
  # apt-get update && apt-get install go
  # apt-get update && apt-get install go
  # exit
  # exit
Для удобной сборки, когда требуется добавить какие-то плагины, можно воспользоваться утилитой [https://caddyserver.com/docs/build#xcaddy xcaddy]. Установить xcaddy можно данной командой:
  $ GOBIN=$HOME/bin go install github.com/caddyserver/xcaddy/cmd/xcaddy@latest
  $ GOBIN=$HOME/bin go install github.com/caddyserver/xcaddy/cmd/xcaddy@latest


  $ xcaddy build --with github.com/abiosoft/caddy-yaml
Сборка происходит с помощью команды <code>xcaddy build</code>, а плагины перечисляются с помощью
 
  $ xcaddy build \
    --with github.com/caddyserver/nginx-adapter \
    --with github.com/abiosoft/caddy-yaml
 
После этого, в текущей директории появится бинарный файл <code>caddy</code>.
$ ./caddy version
v2.6.4 h1:2hwYqiRwk1tf3VruhMpLcYTg+11fCdr8S3jhNAdnPy8=
 
Далее сделаем такой трюк: установим пакет caddy, удалим его из базы rpm и заменим исполняемый файл <code>/usr/bin/caddy</code> на собранный только что. Эта процедура позволит воспользоваться преимуществами конфигурации по умолчанию, служебными файлами systemd и bash-комплектацией из официального пакета.
 
$ su -
# apt-get install caddy
# rpm -e --justdb caddy
# chmod --reference /usr/bin/caddy /home/sysadmin/caddy
# chown --reference=/usr/bin/caddy /home/sysadmin/caddy
# rm /usr/bin/caddy && cp /home/sysadmin/caddy /usr/bin/
 
Проверим работоспособность
$ caddy list-modules | grep yaml
caddy.adapters.yaml
 
Чтобы случайно не установить заново пакет caddy и не заменить собранный нами файл, можно выполнить данную команду: 
 
# cat <<EOF | tee /etc/apt/preferences.d/forbid-caddy
Package: caddy
Pin: origin ""
Pin-Priority: 1001
EOF
 
После этого, пакет caddy не будет устанавливаться, т.к. "пустой" источник будет более приоритетным:
 
# apt-get install caddy
Чтение списков пакетов... Завершено
Построение дерева зависимостей... Завершено
Пакет caddy присутствует в базе данных, но не имеет доступной версии.
Как правило это означает, что хотя пакет упоминается в списке зависимостей,
он отсутствует в репозитории, был вытеснен, либо в sources.list нет адреса
репози�E: Для пакета caddy не найдено подходящего кандидата для установки


=== Управление службой ===
=== Управление службой ===

Навигация