Caddyfile과 native JSON 구성에서 자주 확인하는 기본 구조, 핵심 directive, 검증 절차를 정리한다.
Caddyfile 을 사용한다.caddy fmt, caddy adapt, caddy validate 를 순서대로 점검하면 안전하다.{ } 로 block을 구성한다.# 이다.example.com {
root * /srv/www/example
encode zstd gzip
file_server
}
{ … } 블록이다.{
email [email protected]
admin 127.0.0.1:2019
}
root * /path: 문서 루트 지정file_server: 정적 파일 서빙reverse_proxy <upstream>: upstream으로 전달encode zstd gzip: 응답 압축header: 응답 헤더 추가/수정redir: redirectrewrite: 내부 경로 재작성handle / handle_path: 조건별 처리 분기tls: 인증서 경로 또는 issuer 동작 조정basic_auth: 기본 인증log: access log 설정example.com {
root * /srv/www/example
encode zstd gzip
file_server
}
app.example.com {
reverse_proxy 127.0.0.1:3000
}
app.example.com {
reverse_proxy 127.0.0.1:3000 {
header_up Host {host}
header_up X-Forwarded-Proto {scheme}
header_up X-Forwarded-For {remote_host}
}
}
:8080 {
root * ./public
file_server
}
rootfile_serverreverse_proxyemail 또는 tls 세부 설정localhost 또는 .localhost 이름caddy trust 로 로컬 trust store 반영listen 443 ssl 과 인증서 경로를 직접 적는 방식으로 생각하면 동작을 오해하기 쉽다.
./Caddyfile: 현재 작업 디렉터리의 기본 파일명/etc/caddy/Caddyfile: 배포판 패키지에서 흔한 경로*.json 파일 또는 admin API payload로 운용할 수 있다.Caddyfile: 사람이 읽고 수정하기 편하다.caddy adapt –pretty 로 둘 사이를 비교해 보는 편이 좋다.caddy fmt --overwrite ./Caddyfile caddy adapt --config ./Caddyfile --pretty --validate caddy validate --config ./Caddyfile caddy reload --config ./Caddyfile
fmt: Caddyfile 정렬adapt: JSON 변환과 adapter 수준 확인adapt –validate: provisioning 단계까지 포함한 강한 점검validate: 지정한 config가 실제 로드 가능한지 확인reload: 실행 중인 프로세스에 새 설정 반영reverse_proxy 연결 오류는 upstream 포트, TLS 사용 여부, health check, header 조작을 확인한다.