Настройка Caddy: HTTPS, обратный прокси и управление сайтами

Почему Caddy лучше Nginx для HTTPS?

Разработка и обслуживание любых видов сайтов:

Информационные сайты или веб-приложения
Сайты визитки, landing page, корпоративные сайты, онлайн каталоги, квиз, промо-сайты, блоги, новостные ресурсы, информационные порталы, форумы, агрегаторы
Сайты или веб-приложения электронной коммерции
Интернет-магазины, B2B-порталы, маркетплейсы, онлайн-обменники, кэшбэк-сайты, биржи, дропшиппинг-платформы, парсеры товаров
Веб-приложения для управления бизнес-процессами
CRM-системы, ERP-системы, корпоративные порталы, системы управления производством, парсеры информации
Сайты или веб-приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, конструкторы сайтов, порталы предоставления электронных услуг, видеохостинги, тематические порталы

Это лишь некоторые из технических типов сайтов, с которыми мы работаем, и каждый из них может иметь свои специфические особенности и функциональность, а также быть адаптированным под конкретные потребности и цели клиента

Услуги, которые мы предлагаем
Показано 1 из 1Все 2062 услуг
Настройка Caddy: HTTPS, обратный прокси и управление сайтами
Простой
~2-3 часа

Наши компетенции:

Часто задаваемые вопросы

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1414
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1285
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    982
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1241
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    982
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Разработка веб-сайта для компании ФИКСПЕР
    995

Почему Caddy лучше Nginx для HTTPS?

Настройка HTTPS и reverse proxy в Nginx требует множества ручных операций, особенно при добавлении новых доменов. Caddy — веб-сервер нового поколения, который решает эти проблемы автоматически: он получает и продлевает SSL-сертификаты через Let's Encrypt без лишних действий. Мы внедряем Caddy для клиентов уже много лет — сервер работает без сбоев, а время на развёртывание сокращается в три раза по сравнению с Nginx + certbot. По данным официальной документации Caddy, автоматическое обновление сертификатов происходит за 30 дней до истечения срока.

Caddy избавляет от рутины: конфигурация в 10 строк заменяет десятки директив Nginx. Автоматический HTTPS работает «из коробки» — не нужно открывать порты для ACME или писать cron для обновления. Встроенный reverse proxy с балансировкой нагрузки подходит для микросервисов и Node.js-приложений. Кроме того, Caddy поддерживает HTTP/3 из коробки, что даёт прирост скорости на мобильных сетях. Caddy потребляет в 2 раза меньше памяти, чем Apache при той же нагрузке, что подтверждают тесты производительности.

Как Caddy упрощает управление SSL?

Caddy автоматически получает и продлевает SSL-сертификаты для всех доменов, указанных в Caddyfile. Сервер сам проверяет срок действия и обновляет сертификаты за 30 дней до истечения. Это исключает ошибку «SSL expired» и связанные с ней простои. Для wildcard-сертификатов достаточно добавить DNS-провайдера в блок tls. Поддерживаются более 50 провайдеров: Cloudflare, AWS Route53, DigitalOcean и другие.

Установка и настройка Caddy

Как установить Caddy на сервер?

Поддерживаем Debian/Ubuntu, CentOS, Alpine. Установка на Debian выполняется в несколько шагов:

  1. Подключите репозиторий Caddy.
  2. Установите пакет caddy.
  3. Запустите сервис и проверьте статус.
apt install -y debian-keyring debian-archive-keyring apt-transport-https curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg echo "deb [signed-by=/usr/share/keyrings/caddy-stable-archive-keyring.gpg] https://dl.cloudsmith.io/public/caddy/stable/deb/debian any-version main" | tee /etc/apt/sources.list.d/caddy-stable.list apt update && apt install caddy 

После установки Caddy запускается как systemd-сервис. Проверьте статус: systemctl status caddy.

Пример Caddyfile

# /etc/caddy/Caddyfile example.com { root * /var/www/myapp/public php_fastcgi unix//var/run/php/php8.3-fpm.sock try_files {path} /index.php?{query} encode gzip header { Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" X-Frame-Options "DENY" X-Content-Type-Options "nosniff" Referrer-Policy "strict-origin-when-cross-origin" -Server } @static { path *.css *.js *.jpg *.png *.gif *.ico *.svg *.woff2 } header @static Cache-Control "public, max-age=31536000, immutable" @dotfiles { path /.* } respond @dotfiles 403 log { output file /var/log/caddy/access.log format json } } api.example.com { reverse_proxy localhost:3000 { header_up X-Real-IP {remote_host} header_up X-Forwarded-Proto {scheme} } } www.example.com { redir https://example.com{uri} permanent } 

Этот Caddyfile обслуживает PHP-приложение, проксирует API на Node.js, настраивает заголовки безопасности и кеширование статики. Для нескольких сайтов просто добавьте новые блоки.

Интеграция с Docker

Используйте официальный образ caddy:2-alpine. Примонтируйте Caddyfile и тома для сертификатов:

# docker-compose.yml services: caddy: image: caddy:2-alpine ports: - "80:80" - "443:443" volumes: - ./Caddyfile:/etc/caddy/Caddyfile - caddy_data:/data - caddy_config:/config restart: unless-stopped volumes: caddy_data: caddy_config: 

Такой подход упрощает деплой и обновление. Caddy автоматически подхватывает изменения Caddyfile без перезапуска контейнера.

Сравнение с аналогами

Caddy vs Nginx

Критерий Caddy Nginx
SSL/TLS Автоматический (Let's Encrypt) Ручной через certbot
Конфигурация Caddyfile (5–15 строк) nginx.conf (30+ строк)
Производительность До 1 млн запросов/с До 2 млн запросов/с
Поддержка HTTP/3 Встроенная Требует отдельной сборки
Управление через API Есть (REST) Нет встроенной

Caddy выигрывает по простоте и безопасности, сокращая время настройки SSL в три раза по сравнению с Nginx + certbot. Однако для тонкой настройки под специфичные сценарии Nginx остаётся гибче.

Caddy vs Apache

Критерий Caddy Apache
Конфигурация Caddyfile (5–15 строк) .htaccess + httpd.conf (50+ строк)
Производительность До 1 млн запросов/с До 500 тыс. запросов/с
Автоматический HTTPS Встроенный Требует модуля mod_md
Поддержка HTTP/2/3 Встроенная HTTP/3 через модуль

Caddy значительно проще в настройке, особенно для HTTPS. Apache требует больше ресурсов на конфигурирование и обслуживание.

Что входит в настройку Caddy

  • Диагностика текущей инфраструктуры и выбор оптимальной конфигурации Caddy.
  • Установка и настройка Caddy с автоматическим HTTPS и reverse proxy.
  • Разработка Caddyfile под ваш стек: PHP, Node.js, статика.
  • Интеграция с Docker для контейнеризации.
  • Настройка безопасности: заголовки, ограничения доступа, логирование.
  • Тестирование производительности и оптимизация.
  • Документация по конфигурации и инструкции по поддержке.
  • Обучение команды основам работы с Caddy.
  • Гарантийная поддержка после внедрения (2 недели).

Процесс и сроки

Мы не просто настраиваем Caddy — мы внедряем его в вашу инфраструктуру с гарантией стабильности.

  • Базовая конфигурация одного сайта: 1 день.
  • Комплексный проект (несколько сайтов, Docker, мониторинг): 3–5 дней.

Оценка — бесплатно. Свяжитесь, чтобы обсудить ваш проект. Получите консультацию по настройке Caddy для вашего стека.

За много лет работы мы внедрили Caddy на сотнях проектов и готовы поделиться опытом.

Настройка wildcard-сертификатов в Caddy

Для получения wildcard-сертификата *.example.com укажите домен с *. в Caddyfile:

*.example.com { tls { dns cloudflare {env.CF_API_TOKEN} } reverse_proxy localhost:8080 } 

Caddy сам запросит сертификат через DNS-01 challenge. Убедитесь, что у DNS-провайдера есть API-доступ.

Caddy предоставляет REST API для управления конфигурацией на лету — это упрощает автоматизацию и интеграцию с CI/CD. Используйте Caddy API для динамического добавления сайтов без перезагрузки сервера. Подробнее читайте в официальной документации Caddy.