Введіть ім'я домену:
.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
    Відкриваємо у браузері сайт:

Див. також:

Будь ласка, виберіть мову сайту за промовчанням: