
Caddy лёгкий и быстрый веб-сервер написанный на языке Go и из коробки рассчитан на работу с HTTPS и имеет интеграцию с Let’s Encrypt который может автоматически получать и обновлять сертификаты SSL/TLS а также поддержку HTTP/2 и HTTP/3 протоколов. Он может работать как статический файловый сервер, обратный прокси-сервер или балансировщик нагрузки, что делает его универсальным инструментом для современных веб-приложений, контейнерных сред (Docker) и микросервисов. Caddy веб-сервер нового поколения, который экономит время и снижает количество ошибок за счёт автоматизации.
Сегодня познакомимся с любопытным на мой взгляд веб сервером — Caddy. Расскажу как установить Caddy server. Раньше вообще о нем не слышал.
Ссылка на официальный сайт: https://caddyserver.com.
Установить можно, подключив внешний репозиторий с программой. Репы созданы под все популярные системы такие как Fedora, RHEL, CentOS, Debian и тп. , так что установка проходит быстро.
Установка Caddy в Fedora, RHEL, CentOS
Fedora or RHEL/CentOS 8:
dnf install 'dnf-command(copr)' dnf copr enable @caddy/caddy dnf install caddy
RHEL/CentOS 7:
yum install yum-plugin-copr yum copr enable @caddy/caddy yum install caddy
Установка Caddy в Debian, Ubuntu
sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo apt-key add - curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list sudo apt update sudo apt install caddy
Отличительная черта Caddy в том, что он очень быстро и легко настраивается. Просто покажу несколько примеров и вы сами всё поймёте.
Доступ к файлам с помощью веб сервера
Рисуем такой конфиг и запускаем caddy:
{
auto_https off
}
10.20.1.23:80
root * /var/www
file_server browse
Теперь вы через браузер можете гулять по директории /var/www. Это полный конфиг, больше ничего добавлять не надо. Специально проверил сам. Это я еще отключил https, который по дефолту включен на самоподписанном сертификате. Если не отключать, то буквально три строки останется.
Настройка reverse proxy
Вся настройка — один параметр:
{
auto_https off
}
10.20.1.23:80
reverse_proxy 127.0.0.1:9000
Показ статичной страницы
Если хотите просто показывать кому-то готовый статичный текст, то вам не нужно создавать индексный файл. Добавляйте текст сразу в конфиг Caddy:
{
auto_https off
}
10.20.1.23:80
respond "Hello, world!"
Настройка https
Если у вас есть доменное имя, внешний ip и настроенные dns записи, то caddy автоматически получит бесплатный сертификат и запустит веб сервер по https. Для этого достаточно его запустить с таким конфигом:
example.com root * /var/www
Все быстро и просто. На сайте в документации есть готовые типовые примеры. Веб сервер хорошо подойдет для каких-то временных или внутренних ресурсов, когда не хочется тратить время на настройку более функциональных веб серверов. У него до кучи есть api и конфиги в формате json понимает. Есть где развернуться, если нужна автоматизация.