Доступен (https://caddyserver.com/blog/caddy-0_9-released) выпуск http-сервера Caddy 0.9 (https://caddyserver.com/), примечательного поставкой в виде обособленного исполняемого файла без зависимостей (не требует даже libc) и поддержкой автоматической настройки HTTPS (получение сертификатов автоматизировано через сервис Let’s Encrypt). Код проекта написан (https://github.com/mholt/caddy) на языке Go и поставляется под лицензией Apache 2.0.
В отличие от http-серверов, ориентированных на производительность или функциональность, Caddy пытается максимально упростить и автоматизировать настройку, обеспечив при этом должный уровень безопасности. Caddy позиционируется как решение для web-разработки и быстрого развёртывания web-сайтов, не требующее для запуска особых технических знаний и предоставляющее возможность обслуживания сайтов дизайнерами, блоггерами и авторами контента, без привлечения администраторов и технического персонала.
Сервер также поддерживает HTTP/2 и сетевой протокол QUIC (https://www.opennet.ru/opennews/art.shtml?num=42063) (Quick UDP Internet Connections), виртуальные хосты (в том числе TLS SNI), ротацию сессионных TLS-ключей, применяет по умолчанию HTTPS, позволяет формировать динамический контент через шаблоны (https://caddyserver.com/docs/template-actions), которые напоминают SSI. Для подключения полноценных обработчиков динамического контента, например, проектов на PHP, предлагается использовать FastCGI (https://caddyserver.com/docs/fastcgi). Настройка осуществляется через простой формат конфигурации caddyfile (https://caddyserver.com/docs/caddyfile). В будущем ожидается поддержка REST API для удалённого управления и конфигурационный web-интерфейс (на разработку данных возможностей уже получено (https://www.opennet.ru/opennews/art.shtml?num=44648) финансирование от проекта Mozilla).
Из доступных модулей-расширений можно отметить систему ограничения доступа ipfilter (https://github.com/pyed/ipfilter), файловый менеджер (https://caddyserver.com/docs/filemanager), систему клонирования (https://caddyserver.com/docs/git) содержимого сайта из git-репозиториев, модуль для организации загрузки файлов (https://caddyserver.com/docs/upload), средство для интеграции (https://caddyserver.com/docs/search) поискового движка bleve (http://blevesearch.com/), систему мониторинга (https://caddyserver.com/docs/prometheus), фильтр для автоматической упаковки (https://caddyserver.com/docs/minify) css/javacript/html, генератор сайтов hugo (https://caddyserver.com/docs/hugo), поддержку JWT (https://caddyserver.com/docs/jwt) (JSON Web Tokens) и JSONP (https://ru.wikipedia.org/wiki/JSONP).
Новый выпуск примечателен полной переработкой основной архитектуры проекта и реализации TLS. Вместо дополнений теперь предлагается модель расширения функциональности через плагины, через которые теперь реализованы практически все компоненты Caddy, включая HTTP-сервер. Плагины позволяют использовать Caddy для создания серверов, отличных от HTTP, например, рассматривается создание на базе Caddy DNS-сервера, почтового сервера, SSH, git-сервера и т.п. Связанный с TLS код отделён от остальной функциональности, что позволяет использовать его, например, для реализаиии TARTTLS для почтового сервера или для SFTP.
В настоящее время уже развивается DNS-сервер CoreDNS (https://github.com/miekg/coredns), основанный на технологиях Caddy. Добавлена экспериментальная поддержка протокола QUIC, развиваемого компанией Google в качестве альтернативы связки TCP+TLS для Web, решающего проблемы с большим временем установки и согласования соединений в TCP и устраняющего задержки при потере пакетов в процессе передачи данных.
URL: https://caddyserver.com/blog/caddy-0_9-released
Новость: http://www.opennet.ru/opennews/art.shtml?num=44817