Перейти к содержанию

Конвертер конфигурации Nginx в Caddyfile

Преобразует конфигурацию сервера Nginx в эквивалентный Caddyfile.

Входные данные
Выходные данные

Конвертер конфигурации Nginx в Caddyfile

Вставьте конфигурацию Nginx и этот инструмент переформатирует её как Caddyfile, сохраняя структуру узнаваемой: каждый блок server становится адресом сайта Caddy, а каждый location становится блоком handle с тем же путём. Инструмент создан для типичного сценария миграции — переноса рабочего сайта Nginx на Caddy без необходимости переучивать синтаксис.

Опции определяют, какие части будут преобразованы. Обратный прокси превращает proxy_pass в reverse_proxy и переносит записи proxy_set_header как header_up, подставляя переменные Nginx ($host, $remote_addr) на заполнители Caddy. Статические файлы преобразует root, index и try_files в соответствующие директивы Caddy. Редиректы и переписывание превращает return и rewrite в redir и rewrite. Параметры TLS переносят пару сертификатов в директиву tls — стоит заметить, что Caddy автоматически выпускает и обновляет сертификаты, так что эта строка часто удаляема. Сжатие и кеширование преобразует gzip в encode и отмечает proxy_cache, у которого нет встроенного эквивалента. Лимит размера тела превращает client_max_body_size в блок request_body с соответствующим max_size.

Nginx содержит директивы, которых просто нет в Caddy — от привязки протокола SSL до auth_basic_user_file. Вместо угадывания инструмент оставляет их нетронутыми и добавляет комментарий о том, что не имеет эквивалента и что нужно проверить вручную — отключите эту опцию для чистого выхода. Вложенные блоки обрабатываются корректно. Оба стиля окончания строк поддерживаются, и сводка показывает количество строк, преобразованных директив и поднятых предупреждений.

Всё работает локально в вашем браузере — ваша конфигурация никогда не загружается никуда, что важно когда она содержит внутренние имена хостов или пути к сертификатам. Скопируйте результат, загрузите его как Caddyfile или отправьте обратно во вход для уточнения преобразования.

FAQ

Обрабатывает ли она полный nginx.conf с несколькими блоками server?
Да. Каждый блок server — находится ли он на верхнем уровне или вложен в блок http — становится своим блоком сайта Caddy, разделённые пустой строкой.
Что происходит с директивами, для которых нет эквивалента в Caddy?
Они опускаются в преобразованном выводе и отмечены комментарием "# CADDY:" с объяснением, что нужно проверить вручную. Отключите опцию "Предупреждать о директивах без эквивалента" для чистого выхода без комментариев.
Удаляет ли она мои директивы сертификата SSL?
Она преобразует ssl_certificate и ssl_certificate_key в явную директиву tls с примечанием, что Caddy обычно может управлять сертификатами автоматически — вы можете удалить эту строку и позволить Caddy самостоятельно обрабатывать HTTPS.
Как преобразуются location с регулярными выражениями?
Location, совпадающий с ~ или ~*, становится именованным сопоставителем path_regexp (вроде @match1), используемым блоком handle, потому что Caddy не выполняет сопоставление пути с регулярными выражениями в строке так, как это делает Nginx.
Загружается ли моя конфигурация куда-нибудь?
Нет. Преобразование работает полностью в вашем браузере — ваша конфигурация Nginx никогда не покидает ваше устройство.