hostprofi.ru
Подобрать хостинг
Термин

Caddy

краткое определение

Caddy — веб-сервер на Go с автоматическим HTTPS: получает сертификаты Let's Encrypt без certbot и cron. Поддерживает HTTP/3 и hot reload конфигурации через API.

Caddy — веб-сервер и reverse proxy, написанный на Go. Главное отличие от Nginx и Apache: Caddy автоматически получает и обновляет SSL-сертификаты через Let's Encrypt без дополнительной настройки.

Как работает автоматический HTTPS

При первом запуске Caddy читает конфигурацию, находит все имена хостов и автоматически выполняет ACME (Automatic Certificate Management Environment) challenge у Let's Encrypt. Сертификат получен — HTTPS настроен. Обновление происходит за 30 дней до истечения без вмешательства администратора. Caddy хранит сертификаты в ~/.local/share/caddy (Linux) или запрашивает через ZeroSSL как альтернативный CA.

Конфигурация сравнима по объёму: аналогичный виртуальный хост в Nginx занимает 20–30 строк с учётом certbot, в Caddy — 5–8 строк.

Caddyfile

Минимальный пример для PHP-сайта:

example.com {
    root * /var/www/html
    php_fastcgi localhost:9000
    file_server
    encode gzip
}

Caddy автоматически добавляет HTTPS, OCSP Stapling, HTTP/2 и редиректы HTTP → HTTPS. Конфигурацию можно менять на лету через REST API без перезагрузки: POST /load с JSON-конфигом.

Архитектура

Написан на Go — горутины позволяют обрабатывать тысячи соединений с минимальным потреблением памяти (~30 МБ в базовой конфигурации). Поддерживает HTTP/3 (QUIC) начиная с версии 2.4. Плагины расширяют функциональность: caddy-dns для DNS-01 challenge, caddy-security для аутентификации.

Caddy vs Nginx

ПараметрCaddyNginx
HTTPSАвтоматическиCertbot + cron
КонфигурацияCaddyfile (проще)nginx.conf (гибче)
Wildcard SSLЧерез DNS-01 плагинCertbot + DNS plugin
HTTP/3Из коробки с v2.4Нужна сборка с QUIC
ЭкосистемаМеньше модулейСотни модулей
ДокументацияХорошаяОбширная

История

Caddy создан Мэттом Холтом (Matt Holt) в 2015 году как проект с открытым исходным кодом. Версия 1.x использовала проприетарную лицензию для коммерческого использования. Caddy 2.0 вышел в мае 2020 года — полностью open source под лицензией Apache 2.0. Переписан с нуля: JSON-конфигурация вместо Caddyfile (Caddyfile стал слоем поверх JSON). К 2024 году — более 55 000 звёзд на GitHub.

На что обращать внимание

Caddy подходит для разработчиков и небольших команд, которым нужен простой HTTPS без ручного управления certbot. Для высоконагруженных production-систем с тонкой настройкой кэширования и буферизации Nginx даёт больше контроля. Caddy использует Let's Encrypt API — при частых перезапусках на тестовом сервере можно упереться в rate limit (50 сертификатов/домен/неделю). На тестовых стендах использовать staging-API: acme_ca https://acme-staging-v02.api.letsencrypt.org/directory.

Примечание

Caddy хранит сертификаты в формате .crt и обновляет их автоматически — никакого ручного управления certbot не требуется.

Другие термины