На главную
DevOps и серверы
nginx → Caddy или Apache
Переносит виртуальный хост nginx в Caddy или Apache: домены, TLS, корень сайта, проксирование, try_files, кэш и запреты. Всё, что перенести нельзя, показывается отдельным списком, а не теряется молча.
Конфиг nginx
Caddyfile
shop.ru, www.shop.ru {
tls /etc/letsencrypt/live/shop.ru/fullchain.pem /etc/letsencrypt/live/shop.ru/privkey.pem
root * /srv/shop/public
request_body {
max_size 20MB
}
try_files {path} {path}/ /index.html
handle /api/* {
reverse_proxy 127.0.0.1:3000
}
@static_jpgjpegpngcssjs path \.(jpg|jpeg|png|css|js)$*
header @static_jpgjpegpngcssjs Cache-Control "max-age=2592000, public"
@blocked_git path /.git*
respond @blocked_git 403
file_server
encode gzip zstd
log {
output file /var/log/caddy/access.log
}
}Перенести руками
- location ~server
Регулярное выражение переносится, но синтаксис у Apache и Caddy свой — проверьте вручную.
Что проверить после переноса
- Caddy сам получает сертификат — строка tls нужна только для своего.
- Проверка и форматирование:
caddy validate --config Caddyfile,caddy fmt -w. - Порядок правил у Apache и Caddy другой: в nginx выигрывает самый точный location, здесь — порядок в файле.