Вернуть старое меню
Бесплатно, 24/7 8 (800) 775-97-42
Country flag RU
Country flag EN
Country flag DE
₽ RUB
$ USD
€ EUR
Выбрать VPS
Маркетплейс
О нас
Сообщество
Поддержка
Баланс:
Бонусы:
Войти
Выйти
Зарегистрироваться
ГОТОВЫЕ ТАРИФЫ
Ref icon
VPS Старт От 139 рублей/мес
Ref icon
VPS Мощные Мощные серверы по выгодной цене
Ref icon
VPS Windows Удобные конфигурации для работы с ОС Windows
Ref icon
VPS Быстрые NVMe Максимальная скорость с промышленными NVMe дисками
Ref icon
VPS Plesk Настройте сервер под себя в несколько кликов
Ref icon
VPS с 1C для бухгалтеров Оптимизированные под 1C серверы
Ref icon
VPS для трейдинга Установите торговые терминалы за 1 клик
Ref icon
VPS для геймеров Мощное железо для мощных рейдов
Ref icon
VPS для бизнеса Настроить любой параметр сервера
Ref icon
Посмотреть все тарифы
Card icon Своя конфигурация
Удобный конфигуратор позволит вам настроить любой параметр сервера, а мы предложим за него лучшую цену.
Собрать
Card icon Бесплатный тест на 3 дня
Только для новых пользователей. Возьмите на тест любой сервер до 3000 рублей, проверьте приложения и программы, установив их на VPS.
Попробовать
АККАУНТ Мои серверы Домены Заказать Настройки Партнеру
КЛИЕНТАМ
О компании Входим в топ-15 IAAS в России
Дата-центры 16 ЦОД уровня Tier III в 7 странах
Аттестация по ФСТЭК Поможем с гос. лицензированием
Бонусная программа Накопительная система лояльности
Card icon Пинг до дата-центров
Измерьте ping от вас до всех наших дата-центров. Мы подберем тот, который подходит для вас идеально.
Измерить
Card icon Бесплатный тест на 3 дня
Только для новых пользователей. Возьмите на тест любой сервер до 3000 рублей, проверьте приложения и программы, установив их на VPS.
Попробовать
АККАУНТ Мои серверы Домены Заказать Настройки Партнеру
КЛИЕНТАМ
Справочник Пошаговые инструкции, как настроить VPS
FAQ Частые вопросы о настройке VPS и сервисе
Новости и события Новости сервиса, информация о событиях и спецпроектах компании
Card icon Соцсети
Наш блог на Хабре, выступления, новости компании.
Присоединиться
Card icon Бесплатный тест на 3 дня
Только для новых пользователей. Возьмите на тест любой сервер до 3000 рублей, проверьте приложения и программы, установив их на VPS.
Попробовать
АККАУНТ Мои серверы Домены Заказать Настройки Партнеру
Бесплатно, 24/7 8 (800) 775-97-42
Mobile menu button
Выбрать VPS
Mobile card icon
Своя конфигурация Удобный конфигуратор позволит вам настроить любой параметр сервера, а мы предложим за него лучшую цену.
Собрать
Ref icon
VPS Старт От 139 рублей/мес
Ref icon
VPS Мощные Мощные серверы по выгодной цене
Ref icon
VPS Windows Удобные конфигурации для работы с ОС Windows
Ref icon
VPS Быстрые NVMe Максимальная скорость с промышленными NVMe дисками
Ref icon
VPS Plesk Настройте сервер под себя в несколько кликов
Ref icon
VPS с 1C для бухгалтеров Оптимизированные под 1C серверы
Ref icon
VPS для трейдинга Установите торговые терминалы за 1 клик
Ref icon
VPS для геймеров Мощное железо для мощных рейдов
Ref icon
VPS для бизнеса Настроить любой параметр сервера
Ref icon
Посмотреть все тарифы
Ref icon
Бесплатный тест на 3 дня
Маркетплейс
О нас
Mobile card icon
Пинг до дата-центров Измерьте ping от вас до всех наших дата-центров. Мы подберем тот, который подходит для вас идеально.
Измерить
О компании Входим в топ-15 IAAS в России
Дата-центры 16 ЦОД уровня Tier III в 7 странах
Аттестация по ФСТЭК Накопительная система лояльности
Бонусная программа Накопительная система лояльности
Сообщество
Mobile card icon
Соцсети Наш блог на Хабре, выступления, новости компании.
Присоединиться
Справочник Пошаговые инструкции, как настроить VPS
FAQ Частые вопросы о настройке VPS и сервисе
Новости и события Новости сервиса, информация о событиях и спецпроектах компании
Поддержка
Country flag RU
Country flag EN
Country flag DE
₽ RUB
$ USD
€ EUR
Войти
Зарегистрироваться
Личный кабинет
Мои серверы
Домены
Баланс: Бонусы:
Заказать
Настройки
Партнеру
Выйти
Мои серверы
Домены
Заказать
Настройки
Партнеру
  • ВЫБРАТЬ VPS
  • ДАТА-ЦЕНТРЫ
  • СПРАВОЧНИК
  • ПОДДЕРЖКА
  • ВОЙТИ
RuVDS/Справочник/Развертывание ПО на VPS сервере/Хостинг своего сайта при помощи Caddy в Ubuntu 20.04

Хостинг своего сайта при помощи Caddy в Ubuntu 20.04

3948 просмотров 5 2021-05-29 2021-07-22

Caddy – это веб-сервер, обладающий рядом функций, обеспечивающих простоту и безопасность, что важно при хостинге сайтов. К примеру, Caddy умеет в автоматическом режиме получать TLS-сертификаты от Let’s Encrypt и управлять ими для обеспечения функционирования протокола HTTPS. Caddy также включает в себя поддержку HTTP/2. В данном руководстве мы изучим, как организовать хостинг своего сайта защищенного с помощью HTTPS при помощи Caddy в Ubuntu 20.04.

Все операции в данном мануале мы будем выполнять от имени пользователя, не являющегося root-ом, но имеющего привилегии sudo. Также, нам понадобится зарегистрированное доменное имя, имеющее А-запись, которая должна указывать на IP-адрес нашего сервера. В данном руководстве мы будем использовать доменное имя my-domain.host.

Установка Go

На первом шаге, нам необходимо будет установить и настроить локальную среду программирования языка Go.

Для начала обновите список пакетов:

$ sudo apt update

После чего, перейдите в домашний каталог и запустите загрузку последней версии Go, доступной на официальной странице:

$ cd ~
$ curl -O https://dl.google.com/go/go1.16.6.linux-amd64.tar.gz

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

$ sha256sum go1.16.6.linux-amd64.tar.gz

Контрольная сумма, выведенная командой sha256sum, должна совпадать с контрольной суммой скачанного файла, указанной на странице загрузки:

Проверка контрольной суммы файла дистрибутива
Страница загрузки Go - Хостинг своего сайта при помощи Caddy в Ubuntu 20.04

Далее, загруженный архив необходимо разархивировать и скопировать его содержимое в директорию /usr/local:

$ sudo tar -xvf go1.16.6.linux-amd64.tar.gz -C /usr/local/

Таким образом, вы создадите каталог go в директории /usr/local, для которого необходимо назначить владельцем пользователя и группу root. Это обезопасит данные файлы и гарантирует, что только пользователь root сможет запускать на выполнение бинарные файлы Go:

$ sudo chown -R root:root /usr/local/go

Создание рабочего пространства Go

По умолчанию, директория рабочего пространства Go это – домашний каталог вашего пользователя, содержащий подкаталог go. Создание структуры каталогов для рабочего пространства Go производится при помощи следующей команды:

$ mkdir -p $HOME/go/{bin,src}

Здесь, флаг -p сообщает команде mkdir о необходимости создания всех родительских директорий даже, если они уже существуют. Набор аргументов{bin,src} принуждает mkdir создать каталоги bin и src.

Далее, необходимо установить значение глобальной переменной $GOPATH в файле ~/.profile. Для чего откройте этот файл при помощи, например, nano:

$ sudo nano ~/.profile

В конец файла добавьте следующие строки:

export GOPATH=$HOME/go
export PATH=$PATH:$GOPATH/bin:/usr/local/go/bin

Следующей командой запустите загрузку глобальных переменных:

$ . ~/.profile

Проверить, обновилось ли значение переменной $PATH, можно при помощи команды echo:

$ echo $PATH

Вывод данной команды должен показать вам, что $GOPATH/bin находится в домашней директории используемого вами пользователя. Для нашего случая (мы подключились к системе пользователем your-user) это может выглядеть так:

Вывод команды echo $PATH

Теперь, вы можете проверить версию установленного пакета Go:

$ go version
Версия Go

На этом настройка Go может быть завершена.

Построение Caddy

На этом шаге вы сможете собрать Caddy из источника с возможностью позже добавлять плагины без изменения исходного кода Caddy. Чтобы достичь этого, необходимо будет использовать xcaddy, инструмент, который загрузит и соберёт Caddy вместе с плагинами согласно вашим потребностям.

Перейдите на страницу релизов и скопируйте ссылку на последний релиз для платформы linux_amd64. Перед началом загрузки перейдите в каталог /tmp, для чего наберите в командной строке:

$ cd /tmp

Теперь, запустите загрузку архива дистрибутива:

$ wget https://github.com/caddyserver/xcaddy/releases/download/v0.1.9/xcaddy_0.1.9_linux_arm64.tar.gz

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

$ tar xvf xcaddy_0.1.9_linux_amd64.tar.gz xcaddy

Далее, переместите xcaddy в каталог /usr/bin для того, чтобы сделать этот файл доступным для всей системы:

$ sudo mv xcaddy /usr/bin/

Теперь, когда xcaddy установлен, нужно собрать Caddy. Для этого создайте отдельный каталог в домашней директории вашего пользователя и перейдите в него:

$ cd ~
$ mkdir caddy
$ cd caddy

И наконец, чтобы собрать последнюю версию Caddy, не используя при этом какие-либо сторонние плагины, запустите следующую команду:

$ xcaddy build

Построение структуры Caddy займёт какое-то время, и как только сборка закончится, вам будет доступен исполняемый файл caddy. Он находится в текущем каталоге, откуда его следует переместить в директорию /usr/bin:

$ sudo mv caddy /usr/bin

Теперь попробуйте проверить версию установленного пакета:

$ caddy version

Вывод команды должен содержать номер версии Caddy:

Версия Caddy

Установка Caddy

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

Во-первых, для этого Caddy нужен свой собственный пользователь и группа. Следующей командой создайте такую группу. Она будет называться caddy:

$ sudo groupadd --system caddy

Затем, создайте пользователя caddy, который будет входить в группу caddy:

$ sudo useradd --system --gid caddy --create-home --home-dir /var/lib/caddy --shell /usr/sbin/nologin --comment "Web server user" caddy

У нового пользователя будет свой собственный домашний каталог: /var/lib/caddy. Правда, подключиться к оболочке под именем caddy не получится, так как для неё установлено значение nologin.

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

$ sudo chown root:root /usr/bin/caddy

Также, необходимо установить права на этот файл в 755, что даст пользователю root полный доступ к нему, в то время как остальные учётные записи смогут лишь читать и запускать его на выполнение:

$ sudo chmod 755 /usr/bin/caddy

На этом настройка исполнительного файла Caddy завершена и можно приступить к написанию конфигурации Caddy.

Создание конфигурации Caddy

В этом разделе мы создадим каталог для хранения конфигурационных файлов Caddy. Также, этому каталогу нужно будет установить соответствующих владельца и группу:

$ sudo mkdir /etc/caddy
$ sudo chown -R root:caddy /etc/caddy

Данная настройка для пользователя root и группы caddy будет гарантировать нам то, что Caddy получит доступ к этому каталогу на чтение и запись (через группу caddy), а также то, что права на чтение и модификацию содержимого данной директории будет иметь только учетная запись суперпользователя.

Следующим шагом, нужно будет включить автоматическое предоставление сертификатов TLS-сертификатов от сервиса Let’s Encrypt. Создайте каталог, в котором будут храниться сертификаты, полученные для Caddy, и предоставьте этому каталогу такие же права, что и для директории /etc/caddy:

$ sudo mkdir /etc/ssl/caddy
$ sudo chown -R root:caddy /etc/ssl/caddy

Эту директорию Caddy должен будет использовать для сохранения сертификатов. Из неё же Caddy будет считывать их, чтобы работать с зашифрованными запросами. Поэтому, имеет смысл внести изменения в права доступа для этого каталога таким образом, чтобы работать с ним могли только root и caddy:

$ sudo chmod 0770 /etc/ssl/caddy

Следующим шагом необходимо создать каталог для файлов, с которыми будет работать Caddy, и установить для него владельца и группу caddy:

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

Конфигурация Caddy хранится в файле Caddyfile, находящемся в каталоге /etc/caddy. Такой файл необходимо создать:

$ sudo touch /etc/caddy/Caddyfile

Чтобы установить службу Caddy, с GitHub-репозитория Caddy загрузите файл сервиса Caddy. Его следует поместить в /etc/systemd/system:

$ sudo sh -c 'curl https://raw.githubusercontent.com/caddyserver/dist/master/init/caddy.service > /etc/systemd/system/caddy.service'

Измените права на этот файл так, чтобы только пользователь root мог вносить в него изменения:

$ sudo chmod 644 /etc/systemd/system/caddy.service

Затем, перезапустите подсистему управления службами, чтобы проверить сервис Caddy:

$ sudo systemctl daemon-reload

После чего, проверьте статус службы Caddy:

$ sudo systemctl status caddy

Вывод команды должен выглядеть примерно так:

Статус Caddy

И наконец, чтобы Caddy мог обслуживать как HTTP, так и HTTPS трафик на вашем сервере, вам нужно будет выдать соответствующие разрешения в брандмауэре UFW:

$ sudo ufw allow proto tcp from any to any port 80,443

Теперь, если вы запустите проверку статуса вашего брандмауэра:

$ sudo ufw status

то должны увидеть выданные разрешения в следующем виде:

Разрешения брандмауэра

Настройка Caddy

На этом шаге необходимо будет создать базовую конфигурацию веб-сервера Caddy для того, чтобы он мог обслуживать статические страницы.

Начнём с того, что создадим в директории /var/www страницу нашего базового сайта index.html:

$ sudo nano /var/www/index.html

Теперь, вставьте в него какую-нибудь html-разметку, например:

<!DOCTYPE html>
<html>
<head>
<title>Caddy</title>
</head>
<body>
<h1>This is my first Caddy page.</h1>
</body>
</html>

Закройте файл, сохранив изменения. После чего, откройте файл конфигурации Caddyfile, который вы создали чуть ранее:

$ sudo nano /etc/caddy/Caddyfile

В этот файл добавьте следующие строки:

http:// {
    root * /var/www
    encode gzip
    file_server
}

Это – основная настройка Caddy. Она говорит, что весь HTTP-трафик на вашем сервере должен обслуживаться при помощи файлов (file_server), находящихся в директории /var/www, которая является для вашего сайта корневой, а также, должен сжиматься при помощи gzip в целях сокращения времени загрузки обслуживаемых страниц на клиентской стороне.

Этот файл также закройте, сохранив изменения.

И теперь, чтобы проверить, действительно ли всё это будет работать, запустите службу Caddy:

$ sudo systemctl start caddy

После чего, проверьте статус запущенной службы:

$ sudo systemctl status caddy

При этом, увидеть вы должны примерно следующее:

Статус Caddy

И теперь, если вы наберёте IP-адрес вашего сервера в браузере, вы должны увидеть страницу вашего сайта, который мы создали немного ранее:

Доступ к ресурсу с использованием его IP-адреса - Хостинг своего сайта при помощи Caddy в Ubuntu 20.04

Это означает, что сейчас Caddy работает и настроен для обслуживания статических файлов на нашем сервере.

Настройка TLS сертификатов Let’s Encrypt

Мы уже упоминали, что такой веб-сервер как Caddy умеет работать с TLS-сертификатами в автоматическом режиме. Caddy сам их запрашивает и обновляет, и, соответственно, имеет возможность обслуживать размещённые на нём сайты при помощи защищённых соединений.

Ранее, при установке Caddy, мы уже внесли изменение в настройки брандмауэра UFW, которое позволяет веб-серверу обслуживать HTTPS-трафик. Для того, чтобы это действительно заработало, осталось сделать небольшие поправки в конфигурации самого Caddy.

Для реализации подключения к нашему серверу с использованием защищённого канала, нам необходимо иметь зарегистрированное доменное имя с А-записью, IP-адрес которой указывает на наш сервер. В данном руководстве в качестве имени домена мы используем my-domain.host. Также, нам понадобится адрес электронной почты, который будет использоваться сервисом Let’s Encrypt.

Настройка будет заключаться во внесении изменений в конфигурационный файл Caddy. Поэтому, перейдите в каталог /etc/caddy и откройте для редактирования файл Caddyfile:

$ cd /etc/caddy
$ sudo nano Caddyfile

В тексте файла следует заменить строку http:// на имя вашего домена. Также, нужно будет добавить строку tls с указанием актуального E-mail. В нашем случае текст файла Caddyfile выглядит как:

my-domain.host {
    root * /var/www
    encode gzip
    file_server
    tls my-mail@my-domain.host
}

После сохранения внесённых в файл изменений перезапустите Caddy:

$ sudo systemctl restart caddy

И, чтобы убедиться, что всё работает, наберите в браузере адрес своего сайта с префиксом https://

Сайт в браузере - Хостинг своего сайта при помощи Caddy в Ubuntu 20.04

Статья полезна?

5 Да  3 Нет
Похожие статьи
  • Как установить Nextcloud на Ubuntu 24.04
  • Как установить Puma на Ubuntu 24.04
  • Дополнительные меры безопасности в Mosquitto
  • Настройка аутентификации и шифрования в Mosquitto на Ubuntu 24.04
  • Как установить Mosquitto на Ubuntu 24.04
  • Как установить сертификат Let’s Encrypt на OpenLiteSpeed
Оставить комментарий Отменить ответ

Популярные статьи
  • Как подключиться по RDP из-под MacOS
  • Как установить PostgreSQL и pgAdmin4 в Ubuntu 20.04
  • Управление портами в Linux (Ubuntu/Debian/CentOS)
  • Настройка VPN с использованием WireGuard
  • Как извлекать и разархивировать файлы .tar.gz в Linux-системах
Разделы Справочника
  • Настройка VPS Сервера
  • Начало работы
  • Особенности виртуального сервера
  • Партнерам
  • Развертывание ПО на VPS сервере
  • Сетевые настройки сервера
GAME OVERNIGHT
CLOUDRUSSIA
STRATONET
SPACE DC
ARCTIC DC
VPS/VDS серверы:
Тестовый период
Дешевый VPS
VPS Старт
VPS Мощные
VPS Windows
VPS Быстрые NVMe
VPS с 1C
Форекс VPS
Игровые серверы
VPS для бизнеса
Пинг до дата-центров
Услуги:
Маркетплейс
Панель ispmanager
Антивирусная защита
Аренда лицензий
Облачное хранилище
VPS серверы с Plesk Obsidian
Колокация
Looking Glass
DNS
Клиентам:
О компании
Дата-Центры
Новости
Аттестация по ФСТЭК
Бонусная программа
Публичная Оферта
Соглашение об уровне услуг
Политика обработки персональных данных
Сувениры от RuVDS
Партнерам:
Для прессы
Партнерская программа
Отзывы
API
Помощь:
Справочник
FAQ
Созданных
серверов
231504
Huawey
Supermicro
Cisco
Intel
Microsoft
ISP
Kaspersky
RDCA Logo

«Креатив года» Премия ЦОДы.рф 2021, 2025

RDCA Logo

«Хостер года» Премия ЦОДы.рф 2023

RDCA Logo

«Человек года» Премия ЦОДы.рф 2024

RuVDS
support@RUVDS.com
8 (800) 775-97-42
+7 (495) 135-10-99
МЫ В СОЦИАЛЬНЫХ СЕТЯХ
Copyright © 2025 RuVDS. Все права защищены.
ООО "МТ ФИНАНС" | ОГРН 1157746680332
Оставить отзыв

Условия получения бонуса за оставленный отзыв:

  1. Напишите про нас на любом из специализированных сайтах для отзывов.
  2. Пришлите нам текст отзыва и ссылку на ваш отзыв.
  3. После проверки, мы опубликуем ваш отзыв у нас на сайте и также начислим бонус на ваш баланс.
Strong Testimonials form submission spinner.

Обязательное поле

Укажите электронную почту вашего аккаунта RUVDS
Укажите ссылку на ваш отзыв
rating fields
Поставьте оценку серверам RUVDS
Оставить отзыв
Strong Testimonials form submission spinner.

Обязательное поле

Укажите электронную почту вашего аккаунта RUVDS
Укажите ссылку на ваш отзыв
rating fields
Поставьте оценку серверам RUVDS