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

Вручную настраивать HTTPS и проксирование для каждого сайта — утомительно и чревато ошибками. Мы настраиваем Caddy — веб-сервер, который автоматически выпускает и продлевает SSL-сертификаты, избавляя вас от рутины. Наша команда реализует проект под ключ: от конфигурации Caddyfile до интеграции с Docker и последующей поддержки, обеспечивая надёжную и безопасную работу ваших сайтов.

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

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

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

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

Почему 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.

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

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

  • Разработка сайта компании B2B ADVANCE
    Разработка сайта компании B2B ADVANCE
    1542
  • Разработка веб-приложения для компании FEEDME
    Разработка веб-приложения для компании FEEDME
    1393
  • Разработка веб-сайта для компании БЕЛФИНГРУПП
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    1081
  • Разработка интернет магазина для компании FURNORO
    Разработка интернет магазина для компании FURNORO
    1368
  • Разработка веб-приложения для компании Enviok
    Разработка веб-приложения для компании Enviok
    1139
  • Разработка веб-сайта для компании ФИКСПЕР
    Разработка веб-сайта для компании ФИКСПЕР
    1060