Перейти до вмісту

Конвертер конфігурації 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 ніколи не покидає ваш пристрій.