Как разместить сайт на веб‑сервере Caddy на Ubuntu 18.04
Caddy — лёгкий современный веб‑сервер на Go, который автоматически получает TLS‑сертификаты через Let’s Encrypt и подходит для статических сайтов. В статье шаг за шагом показано: обновление системы, установка Caddy, запуск как systemd‑сервиса, создание корня сайта и базовая настройка Caddyfile для HTTPS. В секциях ниже — чеклисты, советы по безопасности и распространённые ошибки.
Что такое Caddy
Caddy — открытый веб‑сервер, написанный на языке Go; по умолчанию автоматически получает и обновляет TLS‑сертификаты для сайтов. Коротко: быстрый способ запустить HTTPS‑сайт с минимальной настройкой.
Важно: этот туториал ориентирован на Ubuntu 18.04 и пример домена caddy.linuxbuz.com.
Основные варианты использования
- Раздача статических сайтов с поддержкой Markdown, шаблонов и сжатия.
- Быстрая защита сайта через Let’s Encrypt без ручной настройки certbot.
- Легкая интеграция с системой как systemd‑сервис.
Требования
- Сервер с Ubuntu 18.04.
- Домен, указывающий на IP сервера (в примере caddy.linuxbuz.com).
- Доступ root на сервере (пароль или sudo).
Подготовка системы
Перед началом обновите пакеты:
apt-get update -y
apt-get upgrade -yПосле обновления рекомендуется перезагрузить систему, чтобы применить обновлённые ядро и сервисы.
Установка Caddy
В стандартных репозиториях Ubuntu 18.04 Caddy отсутствует, поэтому в этом руководстве используется официальный скрипт установки.
Установите curl, если он отсутствует:
apt-get install curl -yЗапустите инсталлятор Caddy (в примере используется персональная лицензия и плагин hook.service для systemd):
curl https://getcaddy.com | bash -s personal hook.serviceПосле успешной установки вы увидите вывод, похожий на следующий:
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 7380 100 7380 0 0 266k 0 --:--:-- --:--:-- --:--:-- 277k
Downloading Caddy for linux/amd64 (personal license)...
Download verification OK
Extracting...
Putting caddy in /usr/local/bin (may require password)
v1.0.4
Successfully installed
Примечание: параметр “-s personal” указывает на персональную (personal) лицензию; “hook.service” добавляет системный юнит для управления Caddy через systemd.
Проверьте версию:
caddy -versionОжидаемый пример вывода:
v1.0.4Установите Caddy как сервис и запустите его:
caddy -service install
systemctl start caddy
systemctl enable caddyПроверьте статус службы:
systemctl status caddyПример вывода статуса:
? caddy.service - Caddy's service
Loaded: loaded (/etc/systemd/system/caddy.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2020-04-20 05:49:04 UTC; 7s ago
Main PID: 1722 (caddy)
Tasks: 10 (limit: 2359)
CGroup: /system.slice/caddy.service
??1722 /usr/local/bin/caddy
Apr 20 05:49:04 ubuntu1804 systemd[1]: Started Caddy's service.
Apr 20 05:49:04 ubuntu1804 caddy[1722]: Activating privacy features... done.
Apr 20 05:49:04 ubuntu1804 caddy[1722]: Serving HTTP on port 2015
Apr 20 05:49:04 ubuntu1804 caddy[1722]: http://:2015
Создание каталога сайта и файла index
Создайте корневую директорию сайта:
mkdir -p /var/www/caddy.linuxbuz.comСоздайте и отредактируйте файл index.html:
nano /var/www/caddy.linuxbuz.com/index.htmlСодержимое примера:
Caddy Sample Page
Welcome to Caddy web server