Caddyfile 퀵 스타트
출처: Caddy 공식 문서
본문
Caddyfile(확장자 없음)이라는 새 텍스트 파일을 만들어요.
Caddyfile에 가장 먼저 입력할 것은 사이트의 주소예요:
localhost
HTTP와 HTTPS 포트(각각 80과 443)가 OS에서 권한이 필요한 포트라면, 높은 권한으로 실행하거나 더 높은 포트를 사용해야 해요. 권한을 얻으려면 sudo -E로 루트로 실행하거나 sudo setcap cap_net_bind_service=+ep $(which caddy)를 사용해요. 또는 더 높은 포트를 사용하려면 주소를 localhost:2080 같은 걸로 바꾸고, http_port Caddyfile 옵션으로 HTTP 포트를 바꾸면 돼요.
그다음 엔터를 치고, 무엇을 하게 할지 입력하면 이렇게 돼요:
localhost
respond "Hello, world!"
저장한 다음, Caddyfile이 있는 폴더에서 Caddy를 실행해요:
caddy start
Caddy는 로컬 사이트까지 포함한 모든 사이트를 기본적으로 HTTPS로 서빙하므로, 아마 비밀번호를 물어볼 거예요. (비밀번호 프롬프트는 처음 한 번만 나타나요!)
로컬 HTTPS를 위해 Caddy가 인증서와 고유한 개인 키를 자동으로 생성해 줘요. 루트 인증서가 시스템의 신뢰 저장소에 추가되는데, 그래서 비밀번호 프롬프트가 필요한 거예요. 이 덕분에 인증서 오류 없이 로컬에서 HTTPS로 개발할 수 있어요.
(권한 오류가 생기면 높은 권한으로 실행하거나 1023보다 큰 포트를 선택해야 할 수도 있어요.)
브라우저에서 localhost를 열거나 curl로 확인해요:
curl https://localhost
Hello, world!
Caddyfile에서 여러 사이트를 중괄호 { }로 감싸서 정의할 수 있어요. Caddyfile을 이렇게 바꿔 봐요:
localhost {
respond "Hello, world!"
}
localhost:2016 {
respond "Goodbye, world!"
}
업데이트된 설정을 Caddy에 전달하는 방법은 두 가지가 있어요. API를 직접 쓰는 방법:
curl localhost:2019/load \
-H "Content-Type: text/caddyfile" \
--data-binary @Caddyfile
또는 내부적으로 같은 API 요청을 해주는 reload 명령을 쓰는 방법:
caddy reload
새 "goodbye" 엔드포인트를 브라우저에서 열거나 curl로 확인해서 제대로 동작하는지 확인해 봐요:
curl https://localhost:2016
Goodbye, world!
Caddy 사용이 끝나면 꼭 중지해요:
caddy stop