Веб-сервер - это серверное приложение, предназначенное для обработки 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
Чтобы настроить домен, сначала необходимо указать 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
, как показано на рисунке.
Чтобы изменения вступили в силу перезапустите службу 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
А теперь перезагрузите страницу, и вы должны увидеть нечто подобно скриншоту ниже:
Если все настроено правильно, домен будет доступен по протоколу HTTPS, что означает на вашем сайте настроено безопасное SSL подключения.
Заключение
Если вы новичок и хотите настроить веб-сервер, не заморачиваясь долгой настройкой, этот инструмент идеально подходит для вас. Даже если вы опытный пользователь, который нуждается в мгновенном и простом веб-сервере, то стоит обратить внимание на Caddy. Если необходим более навороченный сервер с расширенными возможностями, то можно с минимальными конфигурациями задать разрешения на папки, управлять аутентификацией, страницей ошибок, архивацией, перенаправлением HTTP запросов и другими настройками.
Конечно же нельзя воспринимать Кэдди в качестве замены Apache или Nginx. Caddy не предназначен для работы в среде с высоким трафиком. Но он хорошо подойдёт в тех случаях, где нужно быстро настроить надежный веб-сервер.