Установка веб-сервера Caddy на Debian 12

Caddy − лёгкий и быстрый веб-сервер, написанный на Go. Функционал Caddy включает в себя автоматический HTTPS, а также поддержку HTTP/2 и HTTP/3. Кроме того, Caddy обладает возможностью функционировать в качестве как статического сервера, так и реверс-прокси или балансировщика нагрузки. Настройка конфигурации в Caddy производится путём внесения изменений в Caddyfile, что сильно её упрощает, а встроенный сертификат от Let’s Encrypt избавляет от ручной настройки SSL. В статье рассмотрим, как производится установка веб-сервера Caddy на виртуальный сервер, работающий под управлением Debian 12.

Установка веб-сервера Caddy

Актуальная версия Caddy не входит в стандартные репозитории Debian. Поэтому установить последний стабильный релиз с поддержкой автоматического HTTPS, полной конфигурацией и модульной архитектурой можно только через его официальный репозиторий.

Исходя из этого, во-первых, необходимо установить пакеты, обеспечивающие работу менеджера APT с HTTPS и позволяющие добавлять внешние репозитории с использованием подписей. Чтобы это сделать, запустите команду:

$ sudo apt install debian-keyring debian-archive-keyring apt-transport-https curl

Затем скачайте и установите GPG-ключ репозитория Caddy. Данный ключ нужен, чтобы менеджер APT использовал его для проверки подлинности пакетов из этого репозитория:

$ curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg

Далее добавьте репозиторий Caddy в вашу систему:

$ curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list

После чего обновите индекс пакетов APT, чтобы система увидела новый репозиторий Caddy и его содержимое, и установите сам веб-сервер Caddy из только что подключённого официального репозитория:

$ sudo apt update && sudo apt install caddy

В результате установки в системе будет создан и запущен сервис Caddy. Для просмотра его состояния используйте команду:

$ systemctl status caddy

Из вывода команды видно, что служба работает и установлена в автозагрузку.

Вывод состояния службы Caddy - Установка веб-сервера Caddy

Чтобы проверить работоспособность веб-сервера, добавьте в брандмауэр UFW правило, которое разрешает подключение к системе по протоколу HTTP:

$ sudo ufw allow http

После чего на своём локальном компьютере откройте браузер и перейдите по ссылке http://vash-domain.ru, где vash-domain.ru замените на IP-адрес вашего виртуального сервера или на доменное имя, привязанное к данному IP-адресу через A-запись.

Тестовая страница Caddy - Установка веб-сервера Caddy

Если веб-сервер работает корректно и у вас есть к нему доступ, в браузере откроется тестовая страница Caddy.

Установка сайта на Caddy

Далее разберём, как запустить свой сайт на веб-сервере Caddy. Для начала создайте каталог, в котором будут содержаться файлы сайта:

$ sudo mkdir -p /var/www/html

Поскольку systemd-сервис Caddy запускается от имени пользователя caddy, владельцами данного каталога необходимо сделать пользователя caddy и группу caddy:

$ sudo chown caddy:caddy /var/www/html/

Затем создайте файл стартовой страницы сайта:

$ sudo nano /var/www/html/index.html

В нашем примере его содержимое будет следующим:

<html>
   <head>
      <title>Your website on Caddy!</title>
   </head>
   <body>
      <h1>VASH-DOMAIN.RU</h1>
      <p>This is the start page of your website.</p>
   </body>
</html>

После чего закройте файл index.html с сохранением изменений и отредактируйте конфигурационный файл Caddy:

$ sudo nano /etc/caddy/Caddyfile

В нём необходимо изменить путь к каталогу, содержащему файлы сайта. В нашем примере это /var/www/html:

root * /var/www/html

Чтобы применилась новая настройка, сохраните изменения в файле Caddyfile, закройте его и перезапустите службу Caddy:

$ sudo systemctl restart caddy

Затем проверьте доступность вашего сайта, подключившись к нему из браузера.

Стартовая страница сайта - Установка веб-сервера Caddy

Настройка HTTPS

Веб-сервер Caddy предоставляет встроенную поддержку автоматической настройки HTTPS. Данный функционал упрощает процесс получения и обновления TLS-сертификатов. Все настройки конфигурации веб-сервера, включая выбор протокола для доступа, содержатся в файле Caddyfile, поэтому для включения шифрования достаточно внести соответствующие изменения в данный файл:

$ sudo nano /etc/caddy/Caddyfile

Для обеспечения доступа к сайту по более безопасному протоколу и включения перенаправления HTTP-трафика на HTTPS содержимое файла Caddyfile должно быть следующим:

vash-domain.ru {
    root * /var/www/html
    file_server
    tls vash-adres@vash-domain.ru
}

В данном случае:

  • vash-domain.ru − указывает, что блок применяется ко всем запросам на домен vash-domain.ru;
  • file_server − директива говорит веб-серверу раздавать статические файлы из каталога, указанного в сроке root;
  • tls vash-adres@vash-domain.ru − параметр говорит о включении HTTPS для сайта, а именно, об автоматическом получении сертификата от Let’s Encrypt с применением адреса электронной почты vash-adres@vash-domain.ru, который будет использоваться для получения уведомлений, например, об обновлении сертификата или о приближающемся истечении срока его действия.

Для применения новой настройки после сохранения изменений в файле Caddyfile перезапустите сервис caddy:

$ sudo systemctl restart caddy

Теперь добавьте протокол HTTPS в список разрешённых сервисов брандмауэра UFW:

$ sudo ufw allow https

Чтобы убедиться в том, что правило присутствует в списке межсетевого экрана, используйте команду:

$ sudo ufw status

Удостоверьтесь, что вывод данной команды содержит соответствующую строку, которая указывает на разрешающее правило для порта 443.

Вывод списка правил брандмауэра UFW

И наконец, проверьте доступ по HTTPS, перейдя в браузере по ссылке https://vash-domain.ru, где укажите доменное имя вашего сайта вместо vash-domain.ru.

Доступ к сайту по HTTPS - Установка веб-сервера Caddy

Вам также может понравиться