Введите имя домена:
.ua .com.ua .in.ua .org.ua
.ru .com .net .org
Показать все домены

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

Ответы на вопросы от компании «Украинский хостинг».

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

Caddy является веб-сервером с интуитивным конфигурационным файлов, поддержкой HTTP/2 и автоматическим шифрованием TLS.

Caddy автоматически получает SSL-сертификаты от сервиса Let's Encrypt , центра сертификации, который предоставляет бесплатные сертификаты TLS/SSL и автоматически получает и обновляет сертификаты по мере необходимости.

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

Так же рекомендуется создать не root пользователя с доступом к sudo.

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

yum install nano

Процесс установки веб-сервера Caddy в Linux выглядит следующим образом:
  1. Загружаем сценарий установки Caddy и запускаем его:
    curl https://getcaddy.com | bash -s personal
  2. Проверяем местонахождение установленных файлов Caddy:
    which caddy
  3. Создаем пользователя, который будет использоваться для запуска Caddy и доступа к его файлам:
    sudo adduser -r -d /var/www -s /sbin/nologin caddy
  4. Создаем каталог, в котором будет находится конфигурационный файл Caddy:
    sudo mkdir /etc/caddy
  5. Изменяем владельца каталога /etc/caddy на пользователя root и его группу на www-data, чтобы Caddy мог его прочитать:
    sudo chown -R root:caddy /etc/caddy
  6. Создаем конфигурационный файл Caddy:
    sudo touch /etc/caddy/Caddyfile
  7. Создайте каталог /etc/ssl, в котором будут храниться закрытые ключи SSL и сертификаты, получаемые автоматически от Let's Encrypt:
    sudo mkdir /etc/ssl/caddy
  8. Задаем владельцем папки /etc/ssl/caddy пользователя caddy:
    sudo chown -R caddy:root /etc/ssl/caddy
  9. Удаляем все права доступа каталога для других пользователей:
    sudo chmod 0770 /etc/ssl/caddy
  10. Задаем для каталога /var/www влодельца и группу caddy:
    sudo chown caddy:caddy /var/www
  11. Загружаем systemd файл из официального репозитория Caddy:
    sudo curl -s https://raw.githubusercontent.com/mholt/caddy/master/dist/init/linux-systemd/caddy.service -o /etc/systemd/system/caddy.service
  12. Открываем файл в текстовом редакторе:
    sudo nano /etc/systemd/system/caddy.service
    И изменяем строки:
    User=www-data
    Group=www-data
    на строки:
    User=caddy
    Group=caddy
    Сохраняем изменение в файле, нажав сочетание клавиш Ctrl+x , затем клавишу y и затем клавишу Enter.
  13. Убеждаемся, что systemd в курсе нового файла службы:
    sudo systemctl daemon-reload
  14. Включаем Caddy для запуска при загрузке:
    sudo systemctl enable caddy.service
    Убеждаемся, что служба была загружена и включена для запуска при загрузке:
    sudo systemctl status caddy.service
  15. Caddy обслуживает веб-сайты с использованием протоколов HTTP и HTTPS, поэтому необходимо разрешить доступ к соответствующим портам, чтобы сделать Caddy доступным из Интернета.
    • Включаем firewalld:
      sudo systemctl start firewalld
      И поочередно выполняем следующие команды:
      sudo firewall-cmd --permanent --zone=public —add-service=http
      sudo firewall-cmd --permanent --zone=public —add-service=https
      sudo firewall-cmd --reload
      Все три команды при запуске должны выводить сообщение об успешном завершении.
    • Дополнительно останавливаем Apache и отменяем его запуск при загрузке следующими командами:
      sudo service httpd stop
      sudo systemctl disable httpd.service
  16. Создаем тестовую страницу:
    echo ' <h1>Hello World! </h1>' | sudo tee /var/www/index.html
  17. Открываем ранее созданный файл Caddyfile:
    sudo nano /etc/caddy/Caddyfile
    И вставляем в него следующий код:
    http:// {
    root /var/www
    gzip
    }
    Сохраняем изменение в файле, нажав сочетание клавиш Ctrl+x , затем клавишу y и затем клавишу Enter.
  18. Запускаем службу Caddy:
    sudo systemctl start caddy
  19. Открываем в браузере сайт:
    При нынешней настройке на сайт возможно зайти только по протоколу http, без шифрования, а так же в настройках не указан адрес электронной почты, который требуется Encrypt Encrypt при запросе сертификата.
    Чтобы исправить это, открываем повторно файл Caddyfile:
    sudo nano /etc/caddy/Caddyfile
    И вместо существующего кода вставляем в файл следующий код (вместо адреса сайта faqsite.ml и почтового ящика test@faqsite.ml, должен быть указан адрес собственного сайта, а так же собственный почтовый ящик):
    faqsite.ml {
    root /var/www
    gzip
    tls test@faqsite.ml
    }
    Сохраняем изменение в файле, нажав сочетание клавиш Ctrl+x , затем клавишу y и затем клавишу Enter.
  20. Перезагружаем службу Caddy:
    sudo systemctl restart caddy
    Открываем в браузере сайт:

См.также: