Быстрая настройка web сервера Caddy

Caddy сервер Логотип

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 понимает. Есть где развернуться, если нужна автоматизация.