
빠르고 확장 가능한 멀티 플랫폼 HTTP/1-2-3 웹 서버 (자동 HTTPS 지원)
Caddy는 기본적으로 TLS를 사용하는 확장 가능한 서버 플랫폼입니다.
가장 간단한 크로스 플랫폼 시작 방법은 GitHub Releases에서 Caddy를 다운로드하여 실행 파일을 PATH에 두는 것입니다.
다른 설치 방법은 온라인 문서를 참조하세요.
요구 사항:
참고: 이 단계들은 적절한 버전 정보를 포함하지 않습니다. 이를 위해서는 다음 섹션의 지침을 따르세요.
$ git clone "https://github.com/caddyserver/caddy.git"
$ cd caddy/cmd/caddy/
$ go build
Caddy를 실행하면 구성에서 별도로 지정하지 않는 한 낮은 포트에 바인딩하려고 시도할 수 있습니다. OS가 이를 위해 높은 권한을 요구하는 경우, 새 바이너리에 해당 권한을 부여해야 합니다. Linux에서는 다음과 같이 쉽게 할 수 있습니다: sudo setcap cap_net_bind_service=+ep ./caddy
임시 바이너리만 생성하는 go run을 선호하는 경우에도 포함된 setcap.sh를 사용하여 다음과 같이 할 수 있습니다:
$ go run -exec ./setcap.sh main.go
setcap을 위해 비밀번호를 입력하고 싶지 않다면, sudo visudo를 사용하여 sudoers 파일을 편집하고 사용자 계정이 비밀번호 없이 해당 명령을 실행할 수 있도록 허용하세요. 예를 들어:
username ALL=(ALL:ALL) NOPASSWD: /usr/sbin/setcap
username을 실제 사용자 이름으로 바꾸세요. 주의하고 자신이 무엇을 하는지 아는 경우에만 이 작업을 수행하세요! 우리는 Caddy 사용법을 문서화할 자격이 있을 뿐, Go 도구나 여러분의 컴퓨터에 대해서는 그렇지 않으며, 이 지침은 편의를 위해서만 제공됩니다. 자신의 책임하에 컴퓨터 사용법을 익히고 필요한 조정을 하세요.
그런 다음 모든 모듈 또는 특정 모듈에서 테스트를 실행할 수 있습니다:
$ go test ./...
$ go test ./modules/caddyhttp/tracing/
빌더 도구인 xcaddy를 사용하면...
$ xcaddy build
...다음 단계가 자동화됩니다:
mkdir caddycd caddygo mod init caddygo get github.com/caddyserver/caddy/v2@version에서 version을 git 태그, 커밋 또는 브랜치 이름으로 바꾸세요._ "import/path/here"go build -tags=nobadger,nomysql,nopgxCaddy 웹사이트에는 튜토리얼, 빠른 시작 가이드, 참조 등을 포함한 문서가 있습니다.
경험 수준에 관계없이 모든 사용자가 Caddy 사용에 익숙해지기 위해 시작하기 가이드를 수행할 것을 권장합니다.
시간이 1분밖에 없다면, 웹사이트에 선택할 수 있는 여러 빠른 시작 튜토리얼이 있습니다! 하지만 빠른 시작 튜토리얼을 마친 후에는 소프트웨어가 어떻게 작동하는지 이해하기 위해 더 많은 문서를 읽어보세요. 🙂
Caddy는 HTTPS 서버로 가장 자주 사용되지만, 모든 장기 실행 Go 프로그램에 적합합니다. 무엇보다도 Caddy는 Go 애플리케이션을 실행하는 플랫폼입니다. Caddy "앱"은 Caddy 모듈로 구현된 Go 프로그램일 뿐입니다. 두 개의 앱 -- tls와 http -- 이 Caddy에 기본으로 포함되어 있습니다.
Caddy 앱은 자동 문서화, API를 통한 우아한 온라인 구성 변경, 다른 Caddy 앱과의 통합의 이점을 즉시 누립니다.
JSON이 Caddy의 네이티브 구성 언어이지만, Caddy는 구성 어댑터로부터 입력을 받을 수 있으며, 이는 기본적으로 원하는 모든 구성 형식을 JSON으로 변환할 수 있습니다: Caddyfile, JSON 5, YAML, TOML, NGINX 구성 등.
Caddy를 구성하는 주요 방법은 API를 통하는 것이지만, 구성 파일을 선호한다면 명령줄 인터페이스도 이를 지원합니다.
Caddy는 현존하는 어떤 웹 서버와 비교해도 전례 없는 수준의 제어를 제공합니다. Caddy에서는 일반적으로 HTTP 핸들러와 TLS 핸드셰이크부터 스토리지 매체에 이르기까지 모든 것을 구동하는 메모리 내 초기화된 타입의 실제 값을 설정합니다. Caddy는 또한 다른 웹 서버보다 훨씬 뛰어난 강력한 플러그인 시스템을 갖춘 믿을 수 없을 정도로 확장 가능합니다.
이 설계의 힘을 활용하려면 구성 문서가 어떻게 구조화되어 있는지 알아야 합니다. Caddy의 구성 구조에 대한 자세한 내용은 문서 사이트를 참조하세요.
Caddy의 구성은 거의 모두 단일 구성 문서에 포함되어 있으며, 다른 웹 서버처럼 CLI 플래그와 환경 변수, 구성 파일에 흩어져 있지 않습니다. 이는 서버 구성을 더 간단하게 관리할 수 있게 하고 숨겨진 변수/요인을 줄여줍니다.
우리 웹사이트에는 완전한 문서가 있습니다: