Nginx я знаю хорошо. Настраивал его на десятках серверов, разбирался с location-блоками, upstream, кэшированием. Это надёжный, проверенный инструмент у которого есть ответ на почти любой вопрос в интернете.
Полгода назад я перевёл несколько проектов на Caddy. Это было не из скуки — были конкретные причины.
Почему я попробовал Caddy
Всё началось с SSL. Я уже не первый раз сталкивался с ситуацией: certbot обновил сертификат, nginx не перечитал, сайт упал с ошибкой. Не катастрофа, но каждый раз раздражает. Надо помнить, надо проверять, надо настраивать cron.
Caddy решает это из коробки. Он сам получает сертификат от Let's Encrypt при первом запросе и сам его обновляет. Никаких certbot, никаких cron, никакого "не забудь настроить автообновление". Просто работает.
Второе — конфиг. Вот минимальный Caddyfile для проксирования:
example.com {
reverse_proxy localhost:3000
}
Три строки. SSL, HTTP/2, редирект с HTTP на HTTPS — всё включено автоматически. Аналог на Nginx занял бы 30–40 строк конфига плюс отдельный блок для certbot.
Где Caddy выигрывает
Конфигурация. Caddyfile читается как человеческий язык. Nginx конфиг тоже можно написать понятно, но соблазн городить сложные конструкции там больше.
HTTPS по умолчанию. Это не просто удобство — это меняет подход. На Nginx нужно помнить что SSL надо настроить. На Caddy нужно помнить что его надо отключить если не нужен (например для внутренней сети).
API для управления. У Caddy есть REST API через который можно менять конфигурацию без перезапуска. Это открывает интересные сценарии для автоматизации.
HTTP/3. Поддержка QUIC и HTTP/3 включается одной строчкой. На nginx это экспериментальная функция которую надо собирать отдельно.
Где Nginx лучше
Производительность под нагрузкой. При очень высоком трафике nginx всё ещё эффективнее. Caddy написан на Go и имеет другую модель конкурентности — хорошую, но в бенчмарках на сотнях тысяч rps nginx обычно впереди.
Документация и комьюнити. Nginx существует с 2004 года. Любой вопрос — тысячи ответов на Stack Overflow. С Caddy иногда надо читать исходники или официальную доку внимательнее.
Сложные сценарии. Тонкая настройка кэширования, балансировка с хитрой логикой, сложные rewrite-правила — здесь у nginx больше гибкости. Не потому что Caddy не умеет, а потому что экосистема модулей nginx богаче.
Lua и OpenResty. Если вы используете OpenResty для встроенной логики — Caddy не замена.
Что я сделал в итоге
Личные проекты и небольшие клиентские сайты — переехали на Caddy. Экономия времени на SSL реально ощутима когда у вас десять доменов.
Высоконагруженные проекты и всё где нужна тонкая настройка — остались на nginx. Не потому что Caddy плохой, а потому что менять работающее без причины — не лучшая идея.
Если вы начинаете новый проект — попробуйте Caddy. Порог входа ниже, базовые вещи настраиваются быстрее. Если у вас уже есть nginx и вы в нём разбираетесь — меняться ради перемен не стоит.
Выбор между ними в 2026 году — это не выбор между хорошим и плохим. Это выбор между двумя хорошими инструментами с разными приоритетами.