본문 바로가기
WIKI 기술 지식 베이스

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

추가 자료

더 알아보기 (Learn more)