img

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

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

icon strelka icons icons

узнай больше на курсе

DevOps-инженер с нуля
Стань DevOps-инженером с нуля и научись использовать инструменты и методы DevOps
Укажите вашу электронную почту
Неверный адрес электронной почты
Нажимая на кнопку, вы соглашаетесь на обработку персональных данных
Готово!
Отправили доступы на вашу
электронную почту
Полный курс по сетевым технологиям
Полный курс по сетевым технологиям от Мерион Нетворкс - учим с нуля сетевых инженеров и DevOPS специалистов
Укажите вашу электронную почту
Неверный адрес электронной почты
Нажимая на кнопку, вы соглашаетесь на обработку персональных данных
Готово!
Отправили доступы на вашу
электронную почту
Python программист с нуля
Стань разработчиком на одном из самых популярных языков программирования - Python
Укажите вашу электронную почту
Неверный адрес электронной почты
Нажимая на кнопку, вы соглашаетесь на обработку персональных данных
Готово!
Отправили доступы на вашу
электронную почту

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 не предназначен для работы в среде с высоким трафиком. Но он хорошо подойдёт в тех случаях, где нужно быстро настроить надежный веб-сервер.

Ссылка
скопирована
Получите бесплатные уроки на наших курсах
Все курсы
icon strelka icons icons

узнай больше на курсе

DevOps-инженер с нуля
Стань DevOps-инженером с нуля и научись использовать инструменты и методы DevOps
Подробнее о курсе
Полный курс по сетевым технологиям
Полный курс по сетевым технологиям от Мерион Нетворкс - учим с нуля сетевых инженеров и DevOPS специалистов
Подробнее о курсе
Python программист с нуля
Стань разработчиком на одном из самых популярных языков программирования - Python
Подробнее о курсе
Онлайн-курс по кибербезопасности
Полный курс по кибербезопасности от Мерион Нетворкс - учим с нуля специалистов по информационной безопасности. Пора стать безопасником!
Подробнее о курсе
Java-разработчик с нуля
Освойте backend-разработку и программирование на Java, фреймворки Spring и Maven, работу с базами данных и API
Подробнее о курсе
Этичный хакинг
Научись работать с Kali Linux, изучи самые распространенные уязвимости, разверни виртуальную лабораторию для пентестинга
Подробнее о курсе
Еще по теме:
img
Git Flow - это специальная система ветвления для Git. Она помогает команде лучше контролировать и добавлять различные версии проекта. В статье рассказываем, как ее использовать.
img
Мы рассмотрим несколько простых способов, с помощью которых вы можете управлять и отслеживать логи для своих контейнеров.
img
Узнайте, как использовать Git Hooks для автоматизации задач в рабочем процессе: от проверки коммитов до автоматического тестирования, и как настроить хуки для совместной работы в команде.
img
Откройте для себя, как канареечное развертывание может минимизировать риски при обновлении ПО. Узнайте, как постепенно внедрять новые функции и обеспечивать стабильность продукта с помощью этого метода.
img
Откройте для себя GitOps — революционный подход к управлению инфраструктурой через Git. Узнайте, как этот метод упрощает развертывание приложений и повышает надежность с помощью автоматизации и масштабируемости.
Весенние скидки
30%
50%
60%
До конца акции: 30 дней 24 : 59 : 59