
빠르고 확장 가능한 멀티 플랫폼 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 프로그램에도 적합합니다. 무엇보다도 Go 애플리케이션을 실행하기 위한 플랫폼입니다. Caddy "앱"은 Caddy 모듈로 구현된 Go 프로그램일 뿐입니다. tls 및 http라는 두 개의 앱이 Caddy에 기본으로 제공됩니다.
Caddy 앱은 자동 문서화, API를 통한 우아한 온라인 구성 변경, 그리고 다른 Caddy 앱과의 통합을 즉시 활용할 수 있습니다.
JSON이 Caddy의 기본 구성 언어이지만, Caddy는 구성 어댑터로부터 입력을 받을 수 있으며, 이는 기본적으로 선택한 모든 구성 형식(Caddyfile, JSON 5, YAML, TOML, NGINX 구성 등)을 JSON으로 변환할 수 있습니다.
Caddy를 구성하는 주요 방법은 API를 통하는 것이지만, 구성 파일을 선호한다면 명령줄 인터페이스도 지원합니다.
Caddy는 기존의 어떤 웹 서버보다도 전례 없는 수준의 제어를 제공합니다. Caddy에서는 일반적으로 HTTP 핸들러와 TLS 핸드셰이크부터 스토리지 매체까지 모든 것을 구동하는 메모리의 초기화된 유형의 실제 값을 설정합니다. Caddy는 또한 강력한 플러그인 시스템을 통해 다른 웹 서버보다 훨씬 뛰어난 확장성을 제공합니다.
이 설계의 힘을 활용하려면 구성 문서가 어떻게 구조화되어 있는지 알아야 합니다. Caddy의 구성 구조에 대한 자세한 내용은 문서 사이트를 참조하세요.
Caddy의 거의 모든 구성은 다른 웹 서버처럼 CLI 플래그, 환경 변수 및 구성 파일에 흩어져 있지 않고 단일 구성 문서에 포함되어 있습니다. 이렇게 하면 서버 구성 관리가 더 간단해지고 숨겨진 변수/요인이 줄어듭니다.
웹사이트에 전체 문서가 있습니다:
문서도 오픈 소스입니다. 다음에서 기여할 수 있습니다: https://github.com/caddyserver/website
Caddy를 사용하는 기업은 도움이 필요하기 전에 Ardan Labs를 통해 지원 계약을 체결하는 것이 좋습니다.
스폰서십이 큰 도움이 됩니다! 스폰서에게 비공개 도움을 제공할 수 있습니다. Caddy가 회사에 도움이 된다면 스폰서십을 고려해 주세요. 이는 프로젝트의 장수를 위한 풀타임 작업 자금 지원뿐만 아니라 회사에 필요한 리소스, 지원 및 할인을 제공하며, 고객과 잠재 고객에게 회사의 좋은 이미지를 심어줍니다!
개인은 커뮤니티 포럼(https://caddy.community)에서 무료로 도움을 주고받을 수 있습니다. 사람들은 여가 시간과 선의로 도움을 제공한다는 점을 기억하세요. 도움을 받는 가장 좋은 방법은 먼저 도움을 주는 것입니다!
버그 신고 및 기능 요청(즉, 실행 가능한 개발 항목)에만 이슈 트래커를 사용해 주세요. (지원 질문은 일반적으로 포럼으로 안내됩니다.)
Matthew Holt는 브리검영 대학교에서 컴퓨터 공학을 공부하던 2014년에 Caddy 개발을 시작했습니다. ("Caddy"라는 이름은 이 소프트웨어가 웹 서비스의 지루하고 일상적인 작업을 도와주고, 여러 가지를 함께 정리할 수 있는 단일 장소이기 때문에 선택되었습니다.) 곧 기본적으로 HTTPS를 자동으로 사용하는 최초의 웹 서버가 되었으며, 현재 수백 명의 기여자와 수조 건의 HTTPS 요청을 처리했습니다.
"Caddy"라는 이름은 상표입니다. 소프트웨어 이름은 "Caddy"이며, "Caddy Server"나 "CaddyServer"가 아닙니다. "Caddy" 또는 명확히 하려면 "Caddy 웹 서버"라고 불러 주세요. Caddy는 Stack Holdings GmbH의 등록 상표입니다.
Caddy는 HID Global 회사인 ZeroSSL의 프로젝트입니다.
Debian 패키지 저장소 호스팅은 Cloudsmith에서 제공합니다. Cloudsmith는 조직이 모든 형식의 패키지를 생성, 저장 및 공유할 수 있는 유일한 완전 호스팅형 클라우드 네이티브 범용 패키지 관리 솔루션입니다.