img

Caddy: установка и настройка веб сервера

21 ноября
20:00
Бесплатный вебинар
Введение в Docker
Ведущий — Филипп Игнатенко.
Руководитель центра разработки
Записаться
img
img

Веб-сервер - это серверное приложение, предназначенное для обработки HTTP-запросов между клиентом и сервером. HTTP - это базовый и широко используемый сетевой протокол.

Apache HTTP Server сыграл важную роль в разработке веб-сайтов. Только у него доля рынка 37,3%. Nginx занимает второе место в списке, с долей рынка 32,4%. Microsoft IIS и LiteSpeed с долей рынка 7,8% и 6,9% занимают 3 и 4 места соответственно.

Но недавно я наткнулся на веб-сервер с названием Caddy. Когда развернул его для тестирования и попытался узнать о его функциях, был приятно удивлён. Это переносимый веб-сервер с минимальной конфигурацией. Я решил, что это очень крутой проект и захотел поделиться им с вами.


Что такое Caddy?

Caddy с его простотой в настройках и использовании является альтернативой популярному веб-серверу Apache. Мэтью Холт - руководитель проекта Caddy утверждает, что их продукт является веб-сервером общего назначения, и он предназначен для обычных людей, и, вероятно, является единственным в своем роде.

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


Функции Caddy

  • Быстрое выполнение HTTP-запросов с использованием HTTP/2.
  • Веб-сервер с наименьшей конфигурацией и беспрепятственным развертыванием.
  • TLS шифрование обеспечивает безопасную связь между приложениями и пользователями через Интернет. Вы можете использовать собственные ключи и сертификаты.
  • Простота развертывания/использования. Только один файл без зависимости от платформы.
  • Установка не требуется.
  • Портативные исполняемые файлы.
  • Запуск нескольких ЦП/ядер.
  • Усовершенствованная технология WebSockets - интерактивный сеанс связи между браузером и сервером.
  • Разметка документов на лету.
  • Полная поддержка нового протокола IPv6.
  • Создает журнал в пользовательском формате.
  • Поддержка Fast CGI, обратного прокси, перезаписи и перенаправления, чистый URL-адрес, сжатия Gzip, просмотра каталогов, виртуальных хосты и заголовков.
  • Доступно для всех известных платформ - Windows, Linux, BSD, Mac, Android.

Чем отличается Caddy?

  • Caddy стремится обслуживать интернет, как это должно быть в 2020 году, а не в традиционном смысле.
  • Обладает новейшими функциями - HTTP/2, IPv6, Маркдаун, WebSockets, CreateCGI, шаблоны и другие стандартные функции.
  • Запуск исполняемые файлы без установки.
  • Подробная документация с наименьшим техническим описанием.
  • Разработан с учетом потребностей конструкторов, разработчиков и блоггеров.
  • Поддержка виртуального хоста можете создавать любое количество сайтов.
  • Подходит для всех - независимо от того, является ли ваш сайт статическим или динамическим.
  • Вы фокусируетесь на том, чего достичь, а не на том, как этого добиться.
  • Доступность поддержки большинства платформ - Windows, Linux, Mac, Android, BSD.
  • Обычно на каждый сайт приходится по одному файлу Caddy.
  • Возможность настройки буквально за 1 минуту, даже для тех, кто не сильно дружит с компьютером.

Тестовая среда

Я буду тестировать его на сервере CentOS, а также на сервере Debian, но те же инструкции работают и на дистрибутивах RHEL и Debian. Для обоих серверов я буду использовать 64-разрядные исполняемые файлы.


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

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


Установка Caddy на Fedora, RedHat, CentOS

Мы установим последнюю версию веб-сервера Caddy из репозитория CORP на Fedora и RHEL/CentOS8.

# dnf install 'dnf-command(copr)'
# dnf copr enable @caddy/caddy
# dnf install caddy

На RHEL/CentOS 7 используйте следующие команды:

# yum install yum-plugin-copr
# yum copr enable @caddy/caddy
# yum install caddy

Установка Caddy на Debian и Ubuntu

$ echo "deb [trusted=yes] https://apt.fury.io/caddy/ /" 
    | sudo tee -a /etc/apt/sources.list.d/caddy-fury.list
$ sudo apt update
$ sudo apt install caddy

Установив веб-сервер Caddy, с помощью следующих команд systemctl его можно запустить, активировать или же проверить статус:

# systemctl start caddy
# systemctl enable caddy
# systemctl status caddy

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

http://Server-IP
OR
http://yourdomain.com
Caddy успешно установлен

Настройка доменов в Caddy

Чтобы настроить домен, сначала необходимо указать DNS-записи A/AAAA домена на этом сервере на панели управления DNS. Затем создайте корневой каталог документа для веб-сайта "example.com" в папке/var/www/html, как показано на рисунке.

$ mkdir /var/www/html/example.com

При использовании SELinux необходимо изменить контекст безопасности файлов для веб-содержимого.

# chcon -t httpd_sys_content_t /var/www/html/example.com -R
# chcon -t httpd_sys_rw_content_t /var/www/html/example.com -R

Теперь откройте и отредактируйте файл конфигурации caddy по адресу /etc/caddy/Caddyfile.

# vim /etc/caddy/Caddyfile

Замените :80 на название вашего домена и измените корень сайта на /var/www/html/example.com, как показано на рисунке.

Настройка /etc/caddy/Caddyfile

Чтобы изменения вступили в силу перезапустите службу Caddy:

# systemctl reload caddy

Теперь создайте какую-нибудь HTML-страницу (можно создать собственную) и сохраните её в корневом каталоге веб-сайта.

# touch /var/www/html/example.com/index.html

Добавьте следующий HTML-код в только что созданный файл.

# echo '<!doctype html><head><title>Caddy Test Page at TecMint</title></head><body><h1>Hello, World!</h1></body></html>' | sudo tee /var/www/html/index.html

А теперь перезагрузите страницу, и вы должны увидеть нечто подобно скриншоту ниже:

SSL настроен на Caddy

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


Заключение

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

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

Ссылка
скопирована
Получите бесплатные уроки на наших курсах
Все курсы
DevOps
Скидка 25%
DevOps-инженер с нуля
Научитесь использовать инструменты и методы DevOps для автоматизации тестирования, сборки и развертывания кода, управления инфраструктурой и ускорения процесса доставки продуктов в продакшн. Станьте желанным специалистом в IT-индустрии и претендуйте на работу с высокой заработной платой.
Получи бесплатный
вводный урок!
Пожалуйста, укажите корректный e-mail
отправили вводный урок на твой e-mail!
Получи все материалы в telegram и ускорь обучение!
img
Еще по теме:
img
Git Flow - это специальная система ветвления для Git. Она помогает команде лучше контролировать и добавлять различные версии про
img
Docker — популярная платформа виртуализации на уровне ОС. Она поставляет приложения в пакетах (контейнерах), которые, представля
img
Хуки в Git — это bash-скрипты, которые запускаются до или после команд Git, например, коммитов и пушей. Они позволяют автоматизи
img
  Nomad и Kubernetes – это две самые популярные платформы оркестровки, предназначенные для оркестровки динамических рабочих нагр
img
  Давайте узнаем о новом Ops-течении – GitOps! DevOps поспособствовал цифровизации многих компаний. Речь идет о командах разрабо
img
  Канареечное (canary) развёртывание – это метод разработки и развертывания программного обеспечения, который позволяет выпускат
21 ноября
20:00
Бесплатный вебинар
Введение в Docker